Не могли бы вы помочь мне найти решение моей проблемы?
У меня есть класс, который представляет сущность (я назову его "Entity"). Я хотел бы динамически добавлять методы к моему Entity в соответствии с разными критериями.
Например:
Если $_POST['TYPE'] == 'typeA'
, я бы хотел добавить следующие методы:
- метод1()
- метод2()
- method3()
- method4()
Если $_POST['MODE'] == 'modeA'
, я бы хотел добавить следующие методы:
- method5()
- method6()
- method7()
Проблема в том, что будет много возможных методов, и если я добавлю все из них в свой класс, я боюсь, что мой класс станет слишком большим. Я также хотел бы избежать редактирования моего класса каждый раз, когда возникает новая ситуация.
Я сначала подумал о том, чтобы иметь класс в каждом случае, но у меня слишком много случаев (около 5 критериев и для каждого из 6 или 7 возможных разных значений), что составляет примерно 50 или 60 различных случаев в полном объеме.
Итак, какое лучшее решение для этого?
Должен ли я добавлять все возможные методы в мой класс?
Должен ли я использовать наследование и создавать все возможные типы объектов (Type1Mode1Entity, Type1Mode2Entity,...)?
Знаете ли вы шаблон дизайна (декоратор?), Чтобы сделать это?
Бен
Создайте отдельные классы для ваших случаев, которые расширяют абстрактный класс с помощью общих методов, затем используйте заводскую DP для загрузки требуемого класса