第 6 章 装饰模式

1:背景介绍——小菜穿衣服

做法1:

定义Person类,依次调用方法

弊端:违背了开放——封闭的原则。

做法2:

定义Person类,定义服饰抽象类,具体类继承抽象类。

弊端:客户端调用重复代码太多,功能没分离开来,不方便添加新的功能。

客户端调用:

需要把所需要的功能按正确的顺序串联起来进行控制

做法3(装饰模式):

动态的给每个对象添加一些额外的职责,就增加功能上来说,装饰模式比生成子类更加方便。

Component是定义一个对象接口,可以给这些对象动态的地添加职责。ConcreteComponent是定义了一个具体的对象,也可以给这个对象添加一些职责。Decorator,装饰抽象类,继承了Component,从外类来扩展Component类的功能,当对于Component来说,是无需知道Decoratro的存在的。至于ConcreteDecorator就是具体的装饰对象,起到给Component添加职责的功能。

时间: 2024-10-23 14:07:31

第 6 章 装饰模式的相关文章

设计模式之第4章-装饰模式(Java实现)

设计模式之第4章-装饰模式(Java实现) “怎么了,鱼哥?” “唉,别提了,网购了一件衣服,结果发现和商家描述的差太多了,有色差就算了,质量还不好,质量不好就算了,竟然大小也不行,说好的3个X,邮的却是一个X的,不说了,退货去.你先开讲吧,你说说就一个东西还装饰个什么劲儿.”(装饰模式石化中:这关我什么事儿撒.)恩,今天由我来讲,讲之前先来个段子:话说面条被追到一个理发店,出来一个方便面,然后追他的人一把抓住他就开打:小子(第四声),烫个头发我就不认识你了么?其实那人认错了,出来的真的是方便面

第 13 章 装饰模式【Decorator Pattern】

以下内容出自:<<24种设计模式介绍与6大设计原则>> Ladies and gentlemen,May I get your attention,Please?,Now I’m going to talk about decoratorpattern.装饰模式在中国使用的那实在是多,中国的文化是中庸文化,说话或做事情都不能太直接,需要有技巧的,比如说话吧,你要批评一个人,你不能一上来就说你这个做的不对,那个做的不对,你要先肯定他的成绩,表扬一下优点,然后再指出瑕疵,指出错误的地方

第8章 装饰模式(Decorator Pattern)

原文 第8章 装饰模式(Decorator Pattern) 概述: 装饰模式是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能.它是通过创建一个包装对象,也就是装饰来包裹真实的对象. 装饰模式的特点: (1) 装饰对象和真实对象有相同的接口.这样客户端对象就可以和真实对象相同的方式和装饰对象交互. (2) 装饰对象包含一个真实对象的引用(reference) (3) 装饰对象接受所有来自客户端的请求.它把这些请求转发给真实的对象. (4) 装饰对象可以在转发这些请求以前或以后增加

第六章 装饰模式

装饰模式将类的装饰功能从类中分离出来,只保留了类的核心职责,装饰逻辑(顺序)由调用者选择分配. /** * Created by hero on 16-3-30. */ public abstract class Person { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } public Person() {

大话设计模式第六章---装饰模式PHP实现

1 <?php 2 abstract class Component { 3 abstract public function operation(); 4 } 5 6 class Concrete_component extends Component { 7 public function operation() { 8 echo "具体对象的操作<br/>"; 9 } 10 } 11 12 abstract class Decorator extends Com

第6章-装饰模式

1 /** 2 * 人 3 * @author Persion 4 * 5 */ 6 public class Persion { 7 8 private String name; 9 10 public Persion(){} 11 12 public Persion(String name){ 13 14 this.name = name; 15 } 16 17 18 public void show(){ 19 System.err.print("装扮:"+name+"

大话设计模式C++实现-第6章-装饰模式

一.UML图 二.概念 装饰模式:动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活. 三.说明 角色: (1)Component是定义一个对象,可以给这些对象动态地添加职责. (2)ConcreteComponent是定义了一个具体的对象,也可以给这个对象增加一些职责. (3)Decorator,装饰抽象类,继承了Component,从外类来扩展Component类的功能,但是对于Component来说,是无需知道Decorator的存在的. (4)至于Concre

设计模式之装饰模式--- Pattern Decorator

模式的定义 装饰模式的定义: Attach additional responsibilities to an object dynamically keeping the same interface.Decorators provide a flexible alternative to subclassing for extending functionality. 动态给一个对象添加一些额外的职责.就增加功能来说,装饰模式相比生成子类更为灵活. 类型 结构类 模式的使用场景 需要扩展一个

装饰模式Decorator

第三章 装饰模式Decorator  1.1 什么是装饰模式? 装饰模式Decorator,动态的给一些对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更加灵活 1.2装饰模式Decorator的结构图 Component是定义一个对象接口,可以给这些对象动态的添加职责. ConcreteComponent是定义了一个具体的对象,也可以给这个对象添加一些职责. Decorator装饰抽象类,继承了Component,从外类来扩展Component类的功能,但对于Component来说,