1. 程式人生 > 其它 >設計模式之 裝飾者模式

設計模式之 裝飾者模式

裝飾者模式指在無須改變原有類及類的關係的情況下,動態擴充套件一個類的功能。它通過裝飾者來包裹真實的物件,並動態地向物件新增或者撤銷功能。

(1)定義Sourceable介面

public interface Sourceable{
    public void createComputer();
}

(2)定義Sourceable介面的實現類

public class Source implements Sourceable{
    private final static Log logger = LogFactory.getLog(Source.class);
    @Override
    
public 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(); }