装饰器模式
【小城贝尔】
提升性能装饰器,四中角色来聚齐。
抽象角色父接口,两个角色跟着走。
具体角色要实现,抽象装饰必见面。
具体装饰承抽象,顶级接口类中将。
BufferedInputStream BufferedOutputStream采用了装饰者设计模式
public class DecorationDemo {
public static void main(String[] args) {
CarPlus cp = new CarPlus(new Bicycle());
cp.run();
cp.stop();
}
}
//抽象角色
abstract class Car{
abstract void run();
abstract void stop();
}
//具体角色1
class Bicycle extends Car{
@Override
public void run() {
System.out.println("自行车run");
}
@Override
public void stop() {
System.out.println("自行车 stop");
}
}
//抽象装饰角色
class CarPlus extends Car{
//装饰角色中含有抽象角色的引用
private Car car;
public CarPlus(Car car) {
this.car = car;
}
@Override
public void run() {
System.out.println("加速");
car.run();
}
@Override
public void stop() {
System.out.println("增加刹车");
car.stop();
}
}