第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+"            ");
20     }
21
22 }

Persion.java

 1 public class Finery extends Persion{
 2
 3     protected Persion persion;
 4
 5     public void Decorate(Persion persion){
 6         this.persion=persion;
 7     }
 8
 9     public void show(){
10         if(persion != null){
11             persion.show();
12         }
13     }
14
15 }

Finery.java

1 public class BigTrouser extends Finery {
2
3     @Override
4     public void show(){
5         System.out.print("裤子        ");
6         persion.show();
7     }
8 }

BigTrouser.java

1 public class TShrts extends Finery{
2
3     @Override
4     public void show(){
5         System.out.print("大T恤        ");
6         persion.show();
7     }
8
9 }

TShrts.java

 1 /**
 2  * 装饰模式
 3  * @author lucksheep
 4  *
 5  */
 6 public class Test {
 7
 8     /**
 9      * @param args
10      */
11     public static void main(String[] args) {
12
13         Persion persion=new Persion("小肥羊");
14
15         TShrts shrts=new TShrts();
16         BigTrouser bt=new BigTrouser();
17
18         shrts.Decorate(persion);
19         bt.Decorate(shrts);
20
21         bt.show();
22     }
23
24 }

Test.java

呼呼 有错的地方望指点,最近再看这些基础的东西,稳打稳进

时间: 2024-10-12 04:49:06

第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() {

第 6 章 装饰模式

1:背景介绍--小菜穿衣服 做法1: 定义Person类,依次调用方法 弊端:违背了开放--封闭的原则. 做法2: 定义Person类,定义服饰抽象类,具体类继承抽象类. 弊端:客户端调用重复代码太多,功能没分离开来,不方便添加新的功能. 客户端调用: 需要把所需要的功能按正确的顺序串联起来进行控制 做法3(装饰模式): 动态的给每个对象添加一些额外的职责,就增加功能上来说,装饰模式比生成子类更加方便. Component是定义一个对象接口,可以给这些对象动态的地添加职责.ConcreteCom

大话设计模式第六章---装饰模式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

大话设计模式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来说,