Допустим, я моделирую рабочую силу трудоголиков. У нас есть Боб, который по профессии является водопроводчиком и плотником. Там Джейн, которая является учителем. И, наконец, Джек, детектив, предприниматель в кегельбане и безумный ученый.
Каждая позиция или тип работы может иметь свойства или методы, специфичные только для этой работы. Например, у сантехника будут методы, такие как fixLeakingSink (), и свойства, такие какctedButtCrack, которых у учителя не будет. Но будут некоторые общие свойства и методы.
Если мой суперкласс - работник, а я избегаю множественного наследования, каков наилучший способ моделирования такого сценария? Первоначально я рассмотрел использование шаблона проектирования Decorator, но я не уверен, что это правильное применение для него. (Если полезно знать, на каком языке это будет реализовано, или вы хотите включить фрагменты кода в свое объяснение, это PHP5.)