1. Узор декоратора
Позволяет новой функциональности существующего объекта, не изменяя его структуру. Этот тип шаблона дизайна принадлежит структурному шаблону, который является пакетом существующих классов.
Этот шаблон создает декоративный класс для завершения исходного класса и обеспечивает дополнительную функциональность, сохраняя при этом целостность подписи метода класса.
Мы демонстрируем использование режима декоратора через следующий пример. Среди них мы украсим форму с разными цветами, не изменяя класс формы.
2. Реализация
Мы создадим интерфейс формы и класс объектов, который реализует интерфейс формы. Затем мы создаем абстрактный декоративный декоративный класс -форма, который реализует интерфейс формы и используем объект Shape в качестве переменной экземпляра.
Redshapedecorator - это класс сущностей, который реализует формированную регистрацию.
DecoratorPatterndemo, наш демонстрационный класс использует Redshapedecorator для украшения объектов формы.
Шаг 1
Создать интерфейс.
Shape.java
форма публичного интерфейса {void drain ();} Шаг 2
Создайте класс объектов, который реализует интерфейс.
Прямоугольник. Java
Public Class Rectangle реализует Shape {@Override public void Draw () {System.out.println ("Shape: Rectange"); }}Circle.java
Общедоступный класс Круг реализует Shape {@Override public void Draw () {System.out.println ("Shape: Circle"); }} Шаг 3
Создайте абстрактный декоративный класс, который реализует интерфейс формы.
CHAPEDECORATOR.JAVA
Общедоступный абстрактный класс -фигура реализует форму {защищенную форму украшенную форму; Public Compedecorator (Shape DemoratedShape) {this.DecoratedShape = DecoratedShape; } public void Draw () {decoratedShape.draw (); }} Шаг 4
Создает декоративный класс сущности, который простирается от класса форм.
Redshapedecorator.java
Public Class Redshapedecorator Extends Commortedecorator {Public Redshapedecorator (Shape DecoratedShape) {Super (DecoratedShape); } @Override public void Draw () {decoratedShape.draw (); SetRedborder (DecoratedShape); } private void SetRedborder (Shape DecoratedShape) {System.out.println ("граница цвет: красный"); }} Шаг 5
Используйте Redshapedecorator, чтобы украсить объекты формы.
DecoratorPatterndemo.java
открытый класс DecoratorPatterndemo {public static void main (String [] args) {shape circle = new Circle (); Shape Redcircle = новый RedshapedeCorator (New Circle ()); Shape redrectangle = новый Redshapedecorator (новый rectangle ()); System.out.println («Круг с нормальной границей»); circle.draw (); System.out.println ("/ncircle красной границы"); redcircle.draw (); System.out.println ("/nrectangle красной границы"); redrectangle.draw (); }} Шаг 6
Проверьте выход.
Круг с нормальным границей: Circlecircle of Red Borderershape: Circleborder Цвет: REDRECTANGL
Я надеюсь, что эта статья будет полезна всем, чтобы изучить Java -программирование.