Узор декоратора позволяет добавлять новые функциональности к существующему объекту без изменения его структуры. Этот тип шаблона дизайна принадлежит структурному шаблону, который является пакетом существующих классов.
Этот шаблон создает декоративный класс для завершения исходного класса и обеспечивает дополнительную функциональность, сохраняя при этом целостность подписи метода класса.
Мы демонстрируем использование режима декоратора через следующий пример. Среди них мы украсим форму с разными цветами, не изменяя класс формы.
выполнить
Мы создадим интерфейс формы и класс объектов, который реализует интерфейс формы. Затем мы создаем абстрактный декоративный декоративный класс -форма, который реализует интерфейс формы и используем объект 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.javapublic Class Circle реализует 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
Спасибо за чтение, я надеюсь, что это поможет вам. Спасибо за поддержку этого сайта!