装饰设计模式
- 满足 两个条件
1.装饰者和被装饰者实现同样的接口或者父类
2.被装饰者 必须要 传递给 装饰者 -----装饰者持有对被装饰者的引用
@Test
public void test2() {
DecratorCat cat = new DecratorCat(new Cat());
cat.run();
}
interface ICat{
public void run();
}
//被装饰者
class Cat implements ICat{
public void run() {
System.out.println("小猫在黑暗中抓住了一只老鼠....");
}
}
//装饰者
class DecratorCat implements ICat{
private ICat cat;
public DecratorCat(ICat cat) {
this.cat = cat;
}
@Override
public void run() {
//调用原有的逻辑
cat.run();
//同时可以添加自己的逻辑
System.out.println("但是小猫今天牙疼.....");
}
}
网友评论