1. 程式人生 > >結構型模式(二)

結構型模式(二)

10、facade  外觀

將一系列子系統封裝成一個呼叫介面

     ​    編譯(){

    ​    ​    預處理()

    ​    ​   語法分析()

    ​    ​    ​....

    ​    ​​} 

類似builder模式,builder模式最後會用一個get()介面獲取一個最終產品

優缺點:

把複雜的呼叫流程隱藏起來

11、 flyweight  享元

一些類除去一些外部狀態,其他可以共享,把共享的部分取出來變成一個享元類,其他類持有指標

例:

火車、汽車、自行車都具有改變外觀、移動的功能,可以把相同的功能拿出來構成一個享元類,把類物件的指標分別給他們。

優缺點:

減少了空間。

12、porxy 代理

代理類儲存了真實類的指標

    ​    ​    ​    ​subject

    ​    ​    ​    ​    ​|

    ​    ​    ​|------------|

​    ​real_subject  <----<> proxy opt(){real_subject->opt();}

區別:

介面卡只包裝介面,裝飾器會改變原類,代理用於隱藏和優化

優缺點:

隱藏真實的物件在不同空間的事實。(遠端代理)

可以在真實需要的時候再建立或者載入。(虛代理,比如載入圖片,等到顯示的時候再讀取圖片到記憶體)

保護物件有不同的訪問許可權 (保護代理,外面加個殼)

智慧指標,訪問物件時候附加一些操作