【Java设计模式】装饰者模式

//原始接口
interface Component
{
	public void operator();
}
//默认目标实现类
class TargetComponent implements Component
{
	public void operator()
	{
		System.out.println("TargetComponentA");   
	}
}
//装饰实现类
//封装了一个原始接口的对象实现:targetComponent
abstract class  ComponentDecorator implements Component
{
	private Component targetComponent;

	public ComponentDecorator(Component targetComponent)
	{
		this.targetComponent = targetComponent;
	}

	public void operator()
	{
		targetComponent.operator();
	}
}
//具体装饰实现类
class ComponentDecoratorA extends ComponentDecorator
{

	public ComponentDecoratorA(Component component)
	{
		super(component);
	}
	public void operator()
	{
		super.operator();
		System.out.println("ComponentDecoratorA"); 
	}
}
//客户端
public class Client
{
	public static void main(String[] args)
	{
		//装饰模式的基本含义是能够动态地为一个对象添加一些额外的行为职责
		Component component = new ComponentDecoratorA(new TargetComponent());
		component.operator();
	}
}

你可能感兴趣的:(【Java设计模式】装饰者模式)