7 装饰(Decorator)模式

1.含义

装饰模式又名包装(Wrapper)模式,以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案。

与适配器模式的不同点:

它和委派对象实现同一个接口。

2.类图


3.类代码

/*
 * 抽象构件角色
 */
public interface Component {
	void sampleOperation();
}


/*
 * 具体构件角色
 */
public class ConcreteComponent implements Component {
	public ConcreteComponent() {
	}

	public void sampleOperation() {
		System.out.println("ConcreteComponent");
	}
}


/*
 * 装饰角色
 */
public class Decorator implements Component {
	private Component component;

	public Decorator(Component c) {
		this.component = c;
	}

	public Decorator() {

	}

	public void sampleOperation() {
		component.sampleOperation();		
	}
}


/*
 * 具体装饰角色
 */
public class ConcreteDecorator extends Decorator {
	public void sampleOperation() {
		super.sampleOperation();
	}
}


/*
 * 测试类
 */
public class Test {

	public static void main(String[] args) {
		Component c = new Decorator(new ConcreteComponent());
		c.sampleOperation();
	}
}
 

z

猜你喜欢

转载自samsongbest.iteye.com/blog/1609257