java 装饰者模式
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:
本文转自天天_byconan博客园博客,原文链接:http://www.cnblogs.com/tiantianbyconan/archive/2012/11/20/2779194.html
,如需转载请自行联系原作者