包装对象和被包装的对象都要实现相同的接口.
* 包装的对象中需要获得到被包装对象的引用.
* 书写比较重要的方法
等调用的时候传过去这个类中的对象 再调用的时候就可以调用这个类中的增强方法
* 缺点:如果接口的方法比较多,增强其中的某个方法.其他的功能的方法需要原有调用.比如
/**
* 使用装饰者的方式完成类的方法的增强
*/
interface Waiter{
public void server();
}
class Waiteress implements Waiter{
@Override
public void server() {
System.out.println("服务...");
}
}
class WaiteressWrapper implements Waiter{
private Waiter waiter;
public WaiteressWrapper(Waiter waiter) {
this.waiter = waiter;
}
@Override
public void server() {
System.out.println("微笑...");
// this.waiter.server();
}
}