設計模式之 裝飾者模式
阿新 • • 發佈:2021-09-05
裝飾者模式指在無須改變原有類及類的關係的情況下,動態擴充套件一個類的功能。它通過裝飾者來包裹真實的物件,並動態地向物件新增或者撤銷功能。
(1)定義Sourceable介面
public interface Sourceable{ public void createComputer(); }
(2)定義Sourceable介面的實現類
public class Source implements Sourceable{ private final static Log logger = LogFactory.getLog(Source.class); @Overridepublic void createComputer(){ logger.info("create computer by Source"); } }
(3)定義裝飾者類
public class Decorator implements Sourceable{ private final static Log logger = LogFactory.getLog(Decorator.class); private Sourceable source; public Decorator(Sourceable source){super(); this.source = source; } @Override public void createComputer(){ source.createComputer(); logger.info("make system"); } }
Decorator擴充套件了原來的source的功能
(4)使用
public static void main(String[] args){ Sourceable source = new Source(); Sourceable obj= new Decorator(source); obj.createComputer(); }