23種設計模式---10.裝飾器模式
阿新 • • 發佈:2019-01-03
裝飾器模式(Decorator Pattern)允許向一個現有的物件新增新的功能,同時又不改變其結構。這種型別的設計模式屬於結構型模式,它是作為現有的類的一個包裝。
這種模式建立了一個裝飾類,用來包裝原有的類,並在保持類方法簽名完整性的前提下,提供了額外的功能。
1.抽象出介面
public interface Car {
void run();
}
2.原有類實現該介面,方法體不變
public class SmallCar implements Car { @Override public void run() { System.out.println("too small to money"); } }
3.抽象出一個類實現介面
public abstract class AbstractCar implements Car {
public Car car;
public AbstractCar(Car car) {
this.car = car;
}
@Override
public void run() {
car.run();
}
}
4.具體裝飾類
public class BigCar extends AbstractCar { public BigCar(Car car) { super(car); } @Override public void run() { System.out.println("buff加成"); car.run(); } }
在不改變原有類的情況下新增功能,AOP般的功能