Das Dekorationsmuster ermöglicht es einem vorhandenen Objekt, ohne seine Struktur zu ändern, neue Funktionen hinzugefügt werden. Diese Art von Entwurfsmuster gehört zum Strukturmuster, bei dem es sich um ein Paket vorhandenen Klassen handelt.
Dieses Muster schafft eine dekorative Klasse, um die ursprüngliche Klasse zu wickeln, und bietet zusätzliche Funktionen, während die Integrität der Klassenmethodensignatur aufrechterhalten wird.
Wir demonstrieren die Verwendung des Dekoratormodus im folgenden Beispiel. Unter ihnen dekorieren wir eine Form mit verschiedenen Farben, ohne die Formklasse zu ändern.
erreichen
Wir erstellen eine Formoberfläche und eine Entitätsklasse, die die Formoberfläche implementiert. Anschließend erstellen wir eine abstrakte dekorative Klasse -ShapededeDeDeDededecorator, die die Formoberfläche implementiert und das Formobjekt als Instanzvariable verwenden.
RedshapeDecorator ist eine Entitätsklasse, die ShapededeDeDeDeDeCorator implementiert.
DecoratorsPatternDemo, unsere Demo -Klasse, verwendet Redshapedecorator, um Formobjekte zu dekorieren.
Schritt 1
Erstellen Sie eine Schnittstelle.
Shape.java
öffentliche Schnittstellenform {void Draw ();}Schritt 2
Erstellen Sie eine Entitätsklasse, die die Schnittstelle implementiert.
Rechteck.java
öffentliche Klasse Rechteck implementiert Form {@Override public void draw () {System.out.println ("Form: Rechteck"); }}Circle.java
öffentliche Klassenkreis implementiert Form {@Override public void draw () {System.out.println ("Form: Kreis"); }}Schritt 3
Erstellen Sie eine abstrakte dekorative Klasse, die die Formoberfläche implementiert.
Shapededecorator.java
öffentliche abstrakte Klasse ShapedededeDeDeDeDedeCorator implementiert Form {geschützte Form dekoriertes Shape; public ShapededeDeCorator (Form dekoriertes Shape) {this.decoratedShape = decoratedShape; } public void draw () {decoratedShape.draw (); }}Schritt 4
Erstellt eine dekorative Entitätsklasse, die sich aus der ShapedededeDeCorator -Klasse erstreckt.
Redshapedecorator.java
Public Class RedshapeDeCorator erweitert die ShapededeDeCorator {public Redshapedecorator (Form decoratedShape) {super (decoratedShape); } @Override public void draw () {decoratedShape.draw (); setRedBorder (dekoriertes Shape); } private void setRedBorder (Form decoratedShape) {System.out.println ("Border Farbe: rot"); }}Schritt 5
Verwenden Sie Redshapedecorator, um Formobjekte zu dekorieren.
DecoratorPatternDemo.java
public class DecoratorsPatternDemo {public static void main (String [] args) {form Circle = new Circle (); Form Redcircle = neuer Redshapedecorator (neuer Circle ()); Form rectangle = neuer rothapedecorator (neues rechteck ()); System.out.println ("Kreis mit normalem Rand"); Circle.Draw (); System.out.println ("/ncircle of Red Border"); redcircle.draw (); System.out.println ("/natureGangle of Red Border"); rectangangle.draw (); }}Schritt 6
Überprüfen Sie die Ausgabe.
Kreis mit normalen Grenzen: Circlecircle der roten Grenzen: CircleBorder Color: Recrectangle of Red Bordershape: RechteckBorder Farbe: Rot
Danke fürs Lesen, ich hoffe, es kann Ihnen helfen. Vielen Dank für Ihre Unterstützung für diese Seite!