java 装饰者模式

简介: IPerson: /** * @author com.tiantian * @version 创建时间:2012-11-20 下午3:43:04 */ public interface IPerson { public void canDo(); } Person: /** * @author com.

IPerson:

/**
 * @author com.tiantian
 * @version 创建时间:2012-11-20 下午3:43:04
 */
public interface IPerson {
    public void canDo();
}

Person:

/**
 * @author com.tiantian
 * @version 创建时间:2012-11-20 下午3:44:04
 */
public class Person implements IPerson{

    @Override
    public void canDo() {
        System.out.println("I can code");
    }
}

Decorator(所有Person装饰者的父类):

/**
 * @author com.tiantian
 * @version 创建时间:2012-11-20 下午3:44:55
 */
public class Decorator implements IPerson{
    private IPerson person;
    public Decorator(IPerson person) {
        this.person = person;
    }

    @Override
    public void canDo() {
        person.canDo();
    }
}

DecoratorSwim(Swim装饰--为Peron添加“Swim”功能):

/**
 * @author com.tiantian
 * @version 创建时间:2012-11-20 下午3:48:54
 */
public class DecoratorSwim extends Decorator{

    public DecoratorSwim(IPerson person) {
        super(person);
    }
    
    @Override
    public void canDo() {
        super.canDo();
        System.out.println("I also can swim");
    }
}

DecoratorDraw(Draw装饰--为Peron添加“Draw”功能):

/**
 * @author com.tiantian
 * @version 创建时间:2012-11-20 下午3:47:29
 */
public class DecoratorDraw extends Decorator{

    public DecoratorDraw(IPerson person) {
        super(person);
    }
    @Override
    public void canDo() {
        super.canDo();
        System.out.println("I also can draw");
    }
}

Test:

/**
 * @author com.tiantian
 * @version 创建时间:2012-11-20 下午3:49:35
 */
public class Test {
    public static void main(String[] args) {
        Decorator decorator = new DecoratorDraw(new DecoratorSwim(new Person()));
        decorator.canDo();
    }
}
相关文章
|
4月前
|
设计模式 Java
Java设计模式【十】:装饰者模式
Java设计模式【十】:装饰者模式
22 0
|
8月前
|
设计模式 Java
java实现23种设计模式-装饰者模式
java实现23种设计模式-装饰者模式
79 0
|
设计模式 Java
【设计模式】Java设计模式 - 装饰者模式
装饰者模式是一种结构型模型,是动态的给对象增加职责,对于新增功能来说要比通过子类方式更加的灵活。他允许对一个对象进行添加新的功能,但不能改变结构。
100 1
【设计模式】Java设计模式 - 装饰者模式
|
设计模式 Java
Java常用设计模式-装饰者模式
Java常用设计模式-装饰者模式
104 1
|
设计模式 安全 Java
通俗易懂,值得收藏的 java 设计模式实战,装饰者模式 之 你不用改变,就让你的能力变强了
装饰模式指的是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。
通俗易懂,值得收藏的 java 设计模式实战,装饰者模式 之 你不用改变,就让你的能力变强了
|
设计模式 Java uml
Java设计模式-装饰者模式
Java设计模式-装饰者模式
Java设计模式-装饰者模式
|
设计模式 Java API
Java IO(2)—缓冲字符流以及IO中的装饰者模式
详细介绍了Java IO中的缓冲字符流BufferedWriter、BufferedReader、LineNumberReader的使用方式,以及Java IO中的装饰者模式。
84 0
|
设计模式 Java
【玩转23种Java设计模式】结构型模式篇:装饰者模式
装饰者模式(Decorator Pattern)是一种比较常见的模式,其定义如下:动态地给一个对象添加一些额外的职责。就增加功能来说,装饰模式相比生成子类更为灵活。
【玩转23种Java设计模式】结构型模式篇:装饰者模式
|
设计模式 Java API
Java装饰者模式(decorator)
文章目录 装饰者模式(decorator) 1.实现细节 2.案例演示 3.IO流实现细节 4.实际使用场景 5.总结
Java装饰者模式(decorator)