본문 바로가기
반응형
객체지향과 디자인패턴

[객체지향과 디자인패턴] 상속의 단점 3가지, 보완점

by brightGarden02 2024. 2. 29.

상속의 단점 3가지는 다음과 같다.

 

첫번째 단점: 상위 클래스 변경의 어려움이 있다.

상위 클래스가 변경되면 하위 클래스도 영향을 받기에 하위 클래스도 수정해야하는 단점이 있다.

 

두번째 단점: 클래스의 불필요한 증가를 유발할 수 있다.

해당 기능이 필요해서 상속을 받아 클래스를 만들었다. 그런데 이후 또 다른 기능이 필요해서 상속 받은 클래스에서 다시 상속을 받는 클래스를 만들었다. 이는 계층 구조가 계속 깊어지며 유지보수가 어렵고 재사용의 장점인 상속의 장점도 없어지게 된다.

 

세번째 단점: 상속을 잘못 사용할 수 있다.

상속은 IS-A 관계일 때 사용하는 것이다. 같은 책임을 갖는 관계가 되야한다. 그런데 비슷한 책임을 갖고 있다고 사용했다가 IS-A 관계가 아니여서 원하지 않는 방식으로 동작할 수 있다.

 

 

보완점은 다음과 같다.

Composition을 이용한다. 구성, 합성, 조립이라고 한다. 여러 객체를 묶어서 더 복잡한 기능을 제공하는 객체를 만드는 것이다.

코드 수정에 있어서 유연함이 있기에 Composition을 사용한다.

Composition 사용 방법은 객체를 new로 생성해서 그 객체에게 책임을 위임하는 것이다.

public boolean contains(Point point) {
	Bounds bounds = new Bound(x, y, width, height);
    	return bounds.contains(point.getX(), point.getY());
}

 

 

 

 

참고:

댓글


반응형
반응형