http://www.verejava.com/?id=16999090833167
package com.decorator.theory;
public class TestDecorator
{
public static void main(String[] args)
{
Person p=new Man();
p.show();
p=new ManagerDecorator(p);
p.show();
p=new ActorDecorator(p);
p.show();
}
}
package com.decorator.theory;
public interface Person
{
public void show();
}
package com.decorator.theory;
public class Man implements Person
{
@Override
public void show()
{
System.out.println("我是一个男人");
}
}
package com.decorator.theory;
public class ManagerDecorator extends Decorator
{
public ManagerDecorator(Person p)
{
super(p);
}
@Override
public void show()
{
p.show();
System.out.println("我还是一个经理");
}
}
package com.decorator.theory;
public abstract class Decorator implements Person
{
protected Person p;
public Decorator(Person p)
{
this.p=p;
}
}
package com.decorator.theory;
public class ActorDecorator extends Decorator
{
public ActorDecorator(Person p)
{
super(p);
}
@Override
public void show()
{
p.show();
System.out.println("我还是国际演员");
}
}

本文介绍了一个使用Java实现的装饰者模式案例。通过定义一个Person接口和其具体实现Man类,再利用ManagerDecorator及ActorDecorator两个装饰类来为原始对象动态添加职责。装饰者模式能够使系统比使用继承更具弹性。
3668

被折叠的 条评论
为什么被折叠?



