D'accord, entrons dans notre sujet Aujourd'hui, je vais partager avec vous 装饰器模式
les modèles de conception. Utilisez des histoires de vie appropriées et des scénarios de projet réels pour parler du modèle de conception, et enfin résumez le modèle de conception en une phrase.
Comme le dit le vieil adage : Un homme compte sur ses vêtements et un cheval compte sur sa selle. Familiarisons-nous d'abord avec le contexte de cette phrase :
Les gens comptent sur les vêtements, les chevaux comptent sur les selles et les chiens comptent sur les cloches pour courir joyeusement. Elle vient du dixième chapitre du « Pavillon Wanghu » de Shen Zijin : « Néanmoins. , le Bouddha s'appuie sur des vêtements en or « Les gens comptent sur les vêtements, et la toilette est également très importante. » Volume 1 de « Des mots éternels pour éveiller le monde » : « Deux magistrats de comté se disputent les orphelins du mariage vertueux : « Comme le dit le dicton : « Les bouddhas sont habillés d'or, les gens sont habillés de vêtements et de nombreuses personnes dans le monde ont les yeux superficiels. " , seulement de la peau, pas d'os. " " Comme le dit le proverbe, les adultes comptent sur les vêtements et les chevaux.
Cette histoire classique me rappelle un modèle de design : le modèle décorateur.
Quel est le motif décorateur ? S'il vous plaît, écoutez Lao Tian parler lentement.
Le modèle Décorateur est également appelé modèle Wrapper, qui fait référence à l'ajout dynamique de certains éléments à un objet sans modifier l'objet d'origine. Responsabilités supplémentaires. En termes d'ajout de fonctionnalités, le modèle de décorateur est plus flexible que la génération de sous-classes et constitue un modèle de conception structurelle.
Anglais :
Attachez dynamiquement des responsabilités supplémentaires à un objet en conservant la même interface. Les décorateurs offrent une alternative flexible au sous-classement pour étendre les fonctionnalités de l'objet. Par conséquent, le cœur du motif décoratif est l’extension fonctionnelle. Utilisez le modèle de décorateur pour étendre de manière transparente et dynamique les fonctionnalités d’une classe.
//抽象组件 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 结束后搞点事
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!