2013-11-27 7 views
0

2 가지 디자인이 있습니다. 두 번째 것은 첫 번째 개선 된 버전입니다. 차이점은 B에 2 개의 자식 클래스를 추가한다는 것입니다. 따라서 A는 이제 2 개의 자식 클래스에 종속됩니다. 나중에 B가 더 많은 수업을받는다면 어떻게 될 것입니까?상속 된 클래스를 사용하여 일반화

정말 좋은 방법입니까? 특히 GRASP 관점?

two different version

답변

0

Instad 각 클래스에 연관을 가지고, 나는 다음을 선호하는 것이다.

enter image description here

+0

그러나 이것은 A는 B의 인스턴스를해야합니다 의미 나던? 이것은 A 클래스에서 "B b = new B"와 같으며이 경우 sub1과 sub2를 사용할 수 없습니다. – Yavuz

+0

예, A는 적어도 하나의 B 인스턴스를 가지지 만 sub1 및 sub2 인스턴스는 B 인스턴스입니다. 그래서 코드 B b = new sub2(); 유효합니다. B 인스턴스를 가질 수 없다는 사실을 모델링하기 위해 B를 추상적으로 설정할 수도 있습니다 –