- 装饰模式(decorator):表示动态的给一个对象添加一些新的功能(利用子类继承父类也可以实现,但是比生成子类方式更灵活)。也叫装饰者模式或者装饰器模式
public interface ICar {
void move();
}
class Car implements ICar{
@Override
public void move() {
System.out.println("汽车移动");
}
}
class SuperCar implements ICar{
protected ICar car;
@Override
public void move() {
car.move();
}
public SuperCar(ICar car) {
super();
this.car = car;
}
}
class FlayCar extends SuperCar {
public FlayCar(ICar car) {
super(car);
}
public void flay(){
System.out.println("---天上飞");
}
@Override
public void move() {
super.move();
flay();
}
}
class WaterCar extends SuperCar {
public WaterCar(ICar car) {
super(car);
}
public void swim(){
System.out.println("---水里游");
}
@Override
public void move() {
super.move();
swim();
}
}
public static void main(String[] args) {
Car car = new Car();
car.move();
System.out.println("--------增加飞行功能-------");
FlayCar flyCar = new FlayCar(car);
flyCar.move();
System.out.println("--------增加潜水功能-------");
WaterCar waterCar = new WaterCar(car);
waterCar.move();
}