Основы объектно-ориентированного проектирования

и не вводит новых концепций,


Хотя оно и не вводит новых концепций, следующее правило удобно как итог обсуждения критериев, высказывающихся за и против наследования.
Выбор между клиентом и наследованием
При решении, как выразить зависимость между классами B и A, применяйте следующие критерии:
  • CI1 Если каждый экземпляр B изначально имеет компонент типа A, но этот компонент в период выполнения может нуждаться в замене объектом другого типа, сделайте B клиентом A.
  • CI2 Если необходимо, чтобы сущности типа A обозначали объекты типа B или в полиморфных структурах, содержащих объекты типа A, некоторые могли быть типа B, сделайте B наследником A.


Содержание раздела