設計模式--適配器、代理、裝飾、外觀模式的區別與聯繫

設計模式是爲了提高代碼的可擴展性可讀性,在日常的需求中,逐步總結歸納出來的。是每個程序員都可以在工作中遇到的,用心去發現去理解才能真正的用到工作中,不要爲了用而用。

設計模式從功能上一般分爲創建型、結構型、行爲型 三種類型。
本節要說的就是結構型中的四個模式的區別,先從定義(功能)上進行區別:
定義:
適配器:把一個接口轉換成客戶期望的類型;
代理:爲一個對象提供一個替身或者佔位符,以控制這個對象的訪問;
裝飾:動態的給一個對象附加責任或者行爲
外觀模式:提供一個統一的接口,用來訪問子系統的一羣接口。

功能上:
適配器:讓兩個不同類型的接口合作
代理:控制被代理對象的訪問或延遲創建消耗大的對象的創建時機
裝飾:動態附加責任,通過委託|組合使模式,避免類中出現很多靜態的不需要的代碼功能
外觀:簡化接口,更方便的訪問子系統

實現上:
適配器:創建class A 並實現客戶期望的接口,A中擁有被適配者的接口類型引用(Has-a 關係),把接口功能委託給被適配者;適配者和被適配者屬於不同的類型;
代理:代理類和被代理類實現同一個接口,代理對象是被代理對象的替身,擁有被代理接口的對象引用(Has-a關係);代理者和被代理者屬於同一個類型;
裝飾:裝飾者和被裝飾者繼承同一個子類,被裝飾者也可以裝飾其他裝飾者,所以裝飾者內部擁有一個基類的引用(Has-a);裝飾者和被裝飾者屬於同一個類型;
外觀:外觀類會提供一個統一的接口,同時也會暴露子系統的接口,讓那些需要使用子系統底層功能的客戶端調用

相同點:
1、



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章