(转载请注明出处:http://blog.csdn.net/buptgshengod)
1.背景
装饰模式就是为一个对象增添新的功能,在对象的基础上修饰。本文实现的功能是,对象a有方法show输出“This is a test”,经过装饰后输出“This is a test for decorate”。实质就是多个类通用一个接口,然后将要修饰的类定义在修饰类的构造函数里。
2.代码实现
(1)首先建立通用接口,里面有方法show()
package Decorate; public interface Component { public void show(); }
(2)建立一个类实现show
package Decorate; public class Concrete implements Component{ public void show(){ System.out.print("This is a test"); } }
(3)建立decorate的实现类
package Decorate; public class Decorate implements Component { Component component; public Decorate(Component c){ component=c; } public void show(){ component.show(); System.out.print(" for decorate"); } }
(4)客户端使用
package Decorate; public class Client { public static void main(String[] args){ Component a=new Concrete(); Component b=new Decorate(a); a.show(); System.out.println(); b.show(); } }
结果