2013-11-27 91 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實例的事實 –