結構模式對比

代理模式、適配器模式和裝飾器模式,在實現上差別不大。幾乎都是以繼承、依賴或者組合的方式,將源類歸入目標代理、適配和裝飾類。
因此簡要整理一下他們的區別。設計

- 代理模式 適配器模式 裝飾器模式
解決問題 想在訪問一個類時作一些控制 系統須要使用現有的類,而此類的接口不符合系統的須要。
想要創建一個能夠重複使用的類,用於與一些彼此之間沒有太大關聯的一些類,包括一些可能在未來引進的類一塊兒工做,這些源類不必定有一致的接口。
經過接口轉換,將一個類插入另外一個類系中。
在不想增長不少子類的狀況下擴展類。
關鍵代碼 實現與被代理類組合 適配器繼承或依賴已有的對象,實現想要的目標接口 在客戶端和複雜系統之間再加一層,這一層將調用順序、依賴關係等處理好
差別 適配器模式主要改變所考慮對象的接口,而代理模式不能改變所代理類的接口。
裝飾器模式爲了加強功能,而代理模式是爲了加以控制。
適配器不是在詳細設計時添加的,而是解決正在服役的項目的問題。 可代替繼承。
相關文章
相關標籤/搜索