結構模式對比
代理模式、適配器模式和裝飾器模式,在實現上差異不大。幾乎都是以繼承、依賴或者組合的方式,將源類納入目標代理、適配和裝飾類。
所以簡要整理一下他們的區別。
| - | 代理模式 | 適配器模式 | 裝飾器模式 |
|---|---|---|---|
| 解決問題 | 想在訪問一個類時做一些控制 | 系統需要使用現有的類,而此類的接口不符合系統的需要。 想要建立一個可以重復使用的類,用于與一些彼此之間沒有太大關聯的一些類,包括一些可能在將來引進的類一起工作,這些源類不一定有一致的接口。 通過接口轉換,將一個類插入另一個類系中。 |
在不想增加很多子類的情況下擴展類。 |
| 關鍵代碼 | 實現與被代理類組合 | 適配器繼承或依賴已有的對象,實現想要的目標接口 | 在客戶端和復雜系統之間再加一層,這一層將調用順序、依賴關系等處理好 |
| 差異 | 適配器模式主要改變所考慮對象的接口,而代理模式不能改變所代理類的接口。 裝飾器模式為了增強功能,而代理模式是為了加以控制。 |
適配器不是在詳細設計時添加的,而是解決正在服役的項目的問題。 | 可代替繼承。 |
浮生潦草閑愁廣,一聽啤酒一口盡
浙公網安備 33010602011771號