Представьте, что у меня есть класс, определяющий сущность, такую как Product
,
Моя структура структурирована в переключаемые модули, так что некоторые модули могут расширять класс по умолчанию, т.е.
Module1
позвольте мне определить ColoredProduct
Module2
позвольте мне определить ShapedProduct
Как бы я определил отношения между ColoredProduct
, ShapedProduct
а также Product
? Как я могу убедиться, что могу получить динамическое отношение (переключать одно или другое без вмешательства кода)?
Должен ли я продлить продукт класса? Я ссылаюсь на это в каждом подклассе?
Я использую PHP. Спасибо за ваш вклад.
Похоже, вы ищете иерархию классов:
Product
это суперклассColoredProduct
а также ShapedProduct
являются подклассами. Вам не нужно никакого дополнительного кода, так как подклассы наследуют методы и свойства от Product
суперкласс.
В зависимости от того, как вы реализуете модули, это также может быть решено с использованием интерфейсов или характеристик.
Если ваш вопрос больше касается проектирования связанных модулей приложения, это может быть интересно: В чем разница между слабой связью и жесткой связью в объектно-ориентированной парадигме?.
Для очень хорошего примера того, как независимые модули могут быть разработаны в PHP, вы должны взглянуть на Модули в Yii2 Framework.
Других решений пока нет …