2013-11-27 3 views
0

Существует 2 разных дизайна. Второй вариант (ниже) - улучшенная версия первой. Разница в том, что я добавляю 2 дочерних класса в B. Таким образом, A теперь зависит от 2-х дочерних классов. но что будет, если у B больше дочерних классов?Обобщение с унаследованными классами

Действительно ли это лучшая практика? Особенно с точки зрения ГРАСП?

two different version

ответ

0

вместо внесения иметь ассоциацию с каждым классом, я предпочел бы следующее.

enter image description here

+0

Но разве это не означает, что у вас будет экземпляр B? Это похоже на «B b = новый B» в классе A, и в этом случае я не могу использовать sub1 и sub2. – Yavuz

+0

Да, это означает, что A будет иметь хотя бы один экземпляр B, но экземпляры sub1 и sub2 также являются экземплярами B. Таким образом, код B b = новый sub2(); также действительна. Вы также можете установить B как абстрактный, чтобы смоделировать тот факт, что у вас никогда не будет B-экземпляров –

Смежные вопросы