標籤:des os 使用 問題 代碼 工作 時間 ad c
Structural Patterns(結構模式)主要關注於如何將一些小的類或對象組織成一個大的結構。Structural Patterns分為Structural Class Patterns(結構類模式)和Structural Object Patterns(結構對象模式),Structural Class Patterns用一些物件導向的繼承和封裝性質將一些介面和對介面的實現組織起來,使得介面的外部調用和介面的內部實現獨立;而Structural Object Patterns描述的卻是將一些小的對象組合起來實現一些新的功能結構的方法,在這種模式下,使得這些對象的組合變得靈活,甚至可以在運行時決定或者修改組合方式。
Structural Patterns主要分為以下7種模式:Adapter Pattern(適配器模式),Bridge Pattern(橋接模式),Composite Pattern(組合模式),Decorator Pattern(裝飾器模式),Facade Pattern(面板模式),Flyweight Pattern(享元模式),Proxy Pattern(代理模式)。
Adapter Pattern:
Adapter Pattern(適配器模式)會將一些類介面轉化成使用者所期望的介面,使得一些在介面上不相容的類相互協調起來。
在開發的過程中可能會遇到一種情況,某個功能如果自己去實現的話可能需要花費大量的時間和精力(甚至自己根本就不會實現),而網上又有現成可用的工具包或者庫,這個時候如果用工具包來實現這一功能當然能夠事半功倍。工具包開發出來就是方便將來的開發人員代碼重用,但是有的時候並不能直接重用,因為工具包只提供了一種(或者少量的)形式的介面,而不同的開發所需要用到的介面形式幾乎是各不相同,工具包所提供的介面不可能全部對各種開發所需要的介面形式相容。有兩種方法可以解決這個問題:1.修改工具包的介面。2.用Adapter Pattern將工具包的介面轉化(不是修改)成所需要用到的形式。使用第一種方法有幾點需要注意:1.工具包的介面和所需要用到的介面形式不相容是正常的,工具包本來就是通用的,而不是適用於某一個特定的開發,所以要改動也是特定開發中使用工具包方式的改動。2.如果要改動工具包的介面形式的話,還需要知道工具包的原始碼。3.對工具包的改動可能需要花費大量的工作,還可能出錯。因此,通常不會選擇直接修改工具包的介面形式,而是用Adapter將這些介面形式間的不相容轉化成相容。
(未完待續……)
Design Pattern----Structural Patterns