Обзор
Декоративный режим является функцией расширения объектов прозрачным образом для клиента и является альтернативой отношений наследования. Другими словами, клиент не думает, что существует какая -либо разница между объектом до и после украшения. Декоративный режим может расширить функцию объекта без создания большего количества подклассов. Ключ к декоративному режиму заключается в том, что это расширение является полностью прозрачным.
Структура шаблона
Диаграмма класса UML:
Символы в режиме оформления:
Роль абстрактного компонента (проект): дает интерфейс для регулирования объектов, которые готовы получить дополнительные обязанности.
Конкретная компонентная роль (работник): Определите класс, который получит дополнительные обязанности
Декоративная роль (менеджер): имеет экземпляр объекта компонента и определяет интерфейс, согласующийся с интерфейсом абстрактного компонента
Конкретная декоративная роль (Managera, Managerb): ответственность за «приклеить» дополнительную ответственность за компоненты объектов
Пример кода
интервью с пакетом; интерфейс Project {void DocoDing ();} класс работник реализует проект {@Override public void docoDing () {System.out.println ("Инженерная инженерия - это программирование ..."); }} менеджер класса реализует Project {Private Project Project; Public Manager (Project Project) {this.project = project; } @Override public void docoding () {startNewWork (); project.docoding (); } public void startNewWork () {}} Class ManageRERE EXTENDS Manager {public Manageer (Project Project) {super (Project); } @Override public void startNewWork () {System.out.println («Менеджер по разработке запускает новый план работы»); }} класс Managerb Extends Manager {public Managerb (Project Project) {super (Project); } @Override public void startNewWork () {System.out.println ("Диспетчер тестов запускает новый план работы"); / Project Manageera = New Manageera (Project); Project Managerb = новый Managerb (Project); Manageera.Docoding (); Managerb.docoding (); }} Преимущества и недостатки декоративного режима:
преимущество:
Цель декоративного режима и наследования состоит в том, чтобы расширить функцию объекта, но декоративный режим может обеспечить большую гибкость, чем наследование. Декоративный режим позволяет системе динамически решать «приклеить» необходимое «украшение», а отношения наследования различны. Отношения наследования статичны, и это решается до работы системы.
Используя различные конкретные декоративные категории и комбинации этих декоративных категорий, дизайнеры могут создавать множество различных комбинаций поведения.
недостаток:
Из -за использования декоративных узоров может потребоваться меньшее количество классов, чем использование отношений наследования. Использование меньшего количества классов, безусловно, облегчает выполнение дизайна. Однако, с другой стороны, использование декоративных узоров производит больше объектов, чем использование отношений наследования. Больше объектов может затруднить ошибки, особенно когда они выглядят похожими.
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.