結構型模式(二)
阿新 • • 發佈:2019-01-27
10、facade 外觀
將一系列子系統封裝成一個呼叫介面
編譯(){
預處理()
語法分析()
....
}
類似builder模式,builder模式最後會用一個get()介面獲取一個最終產品
優缺點:
把複雜的呼叫流程隱藏起來
11、 flyweight 享元
一些類除去一些外部狀態,其他可以共享,把共享的部分取出來變成一個享元類,其他類持有指標
例:
火車、汽車、自行車都具有改變外觀、移動的功能,可以把相同的功能拿出來構成一個享元類,把類物件的指標分別給他們。
優缺點:
減少了空間。
12、porxy 代理
代理類儲存了真實類的指標
subject
|
|------------|
real_subject <----<> proxy opt(){real_subject->opt();}
區別:
介面卡只包裝介面,裝飾器會改變原類,代理用於隱藏和優化
優缺點:
隱藏真實的物件在不同空間的事實。(遠端代理)
可以在真實需要的時候再建立或者載入。(虛代理,比如載入圖片,等到顯示的時候再讀取圖片到記憶體)
保護物件有不同的訪問許可權 (保護代理,外面加個殼)
智慧指標,訪問物件時候附加一些操作