java设计模式--结构型模式--装饰模式
2014-10-23 11:06
363 查看
装饰模式 概述 动态地给一个对象添加一些额外的职责。就增加功能来说,Decorator模式相比生成子类更为灵活。 适用性 1.在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责。 2.处理那些可以撤消的职责。 3.当不能采用生成子类的方法进行扩充时。 参与者 1.Component 定义一个对象接口,可以给这些对象动态地添加职责。 2.ConcreteComponent 定义一个对象,可以给这个对象添加一些职责。 3.Decorator 维持一个指向Component对象的指针,并定义一个与Component接口一致的接口。 4.ConcreteDecorator 向组件添加职责。
测试类:
public class Test { public static void main(String[] args) { Man man = new Man(); ManDecoratorA md1 = new ManDecoratorA(); ManDecoratorB md2 = new ManDecoratorB(); md1.setPerson(man); md2.setPerson(md1); md2.eat(); } }
public interface Person { void eat(); }
public class Man implements Person { public void eat() { System.out.println("男人在吃"); } }
public abstract class Decorator implements Person { protected Person person; public void setPerson(Person person) { this.person = person; } public void eat() { person.eat(); } }
public class ManDecoratorA extends Decorator { public void eat() { super.eat(); reEat(); System.out.println("ManDecoratorA类"); } public void reEat() { System.out.println("再吃一顿饭"); } }
public class ManDecoratorB extends Decorator { public void eat() { super.eat(); System.out.println("==============="); System.out.println("ManDecoratorB类"); } }
用了大牛的代码做笔记,学习观摩不停进步...用了这么多框架,源码还是不易看懂啊
相关文章推荐
- java设计模式之结构型模式-装饰模式
- Java经典设计模式-结构型模式-装饰模式(Decorator)
- Java结构型设计模式-装饰(二)
- java-设计模式(结构型)-【装饰模式】
- java设计模式——结构型模式专题(一)装饰模式
- Java设计模式_结构型_装饰模式_是海军还是空军
- Java设计模式(9)——结构型模式之装饰模式(Decorator)
- Java设计模式之结构型模式-装饰器模式(Decorator)
- java设计模式——结构型之装饰模式
- Java常用的设计模式07:常用设计模式之装饰器模式(结构型模式)
- java设计模式(结构型)之装饰模式
- Java设计模式_(结构型)_装饰模式
- JAVA设计模式(7) —<结构型>装饰模式(Decorator)
- Java设计模式之装饰模式
- 黑马程序员 java学习笔记3-IO流之字节流与装饰设计模式
- Java设计模式之装饰模式
- 面向对象设计模式之Decorator装饰模式(结构型)
- java_装饰设计模式
- java设计模式:装饰器模式[Decorator]
- Java 设计模式 --装饰模式