Okay, lass uns unser Thema heute mit dir teilen 装饰器模式
in Designmustern. Verwenden Sie geeignete Lebensgeschichten und reale Projektszenarien, um über das Entwurfsmuster zu sprechen, und fassen Sie das Entwurfsmuster schließlich in einem Satz zusammen.
Wie das alte Sprichwort sagt: Ein Mann verlässt sich auf seine Kleidung und ein Pferd verlässt sich auf seinen Sattel. Machen wir uns zunächst mit dem Hintergrund dieses Satzes vertraut:
Der Mensch verlässt sich auf Kleidung, das Pferd verlässt sich auf den Sattel und der Hund läuft mit Glocken. Er stammt aus dem zehnten Kapitel von Shen Zijins „Wanghu Pavilion“: „Trotzdem verlässt sich Buddha.“ über goldene Kleidung „Menschen verlassen sich auf Kleidung, und auch die Körperpflege ist sehr wichtig.“ Band 1 von „Awakening Words“: Zwei Waisenkinder von Bezirksrichtern, die um eine gerechte Ehe konkurrieren: „Wie das Sprichwort sagt: ‚Buddhas sind in Gold gekleidet, die Menschen sind es auch.“ „in Kleidung gekleidet, und viele Menschen auf der Welt haben flache Augen, nur Haut, keine Knochen.“ Wie das Sprichwort sagt, verlassen sich Erwachsene auf Kleidung und Pferde.
Diese klassische Geschichte erinnert mich an ein Designmuster: das Dekoratormuster.
Was ist das Dekorationsmuster? Bitte hören Sie zu, wie Lao Tian langsam spricht.
Das Decorator-Muster wird auch Wrapper-Muster genannt und bezieht sich auf das dynamische Hinzufügen einiger Elemente zu einem Objekt, ohne das ursprüngliche Objekt zu ändern. Zusätzliche Verantwortlichkeiten. Im Hinblick auf das Hinzufügen von Funktionalität ist das Dekoratormuster flexibler als die Generierung von Unterklassen und ein strukturelles Entwurfsmuster.
Englisch:
Fügen Sie einem Objekt zusätzliche Verantwortlichkeiten hinzu und behalten Sie dabei die gleiche Schnittstelle bei. Sie bieten eine flexible Alternative zur Unterklassenbildung zur Erweiterung der Funktionalität des Objekts. Daher ist der Kern des Dekoratormusters die funktionale Erweiterung. Verwenden Sie das Dekoratormuster, um die Funktionalität einer Klasse transparent und dynamisch zu erweitern.
//抽象组件 public abstract class Component { public abstract void operation(); } //具体组件 public class ConcreteComponent extends Component { @Override public void operation() { System.out.println("ConcreteComponent operation"); } } //装饰器抽象 public abstract class Decorator extends Component { protected Component component; public Decorator(Component component) { this.component = component; } @Override public void operation() { component.operation(); } } //具体装饰器 public class ConcreteDecorator extends Decorator { public ConcreteDecorator(Component component) { super(component); } @Override public void operation() { System.out.println("开始前搞点事"); super.operation(); System.out.println("结束后搞点事"); } } //测试 public class Client { public static void main(String[] args) { Component component = new ConcreteDecorator(new ConcreteComponent()); component.operation(); } }
开始前搞点事 ConcreteComponent operation 结束后搞点事
Das obige ist der detaillierte Inhalt von3 Jahre Berufserfahrung als wesentlicher Dekorateur. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!