Facade模式和Adapter模式
Posted on 2007-11-21 13:03 game of programming 閱讀(656) 評論(0) 編輯 收藏 所屬分類: Design Pattern從包裝(Wrapper)的層次上來看,Facade模式和Adapter模式都是使用一個中間類來包裝所需要的或者規定的接口,而不是直接調用原有子系統所提供的接口。那么這兩種模式有什么區別和聯系呢?
1 從所包裝的對象或者子系統來說:Facade模式和Adapter模式都需要對一個現成的對象進行包裝。但是Facade模式所提供的功能只是子系統所提供功能的子集,即Client只使用子系統的部分功能,而不需要全部功能。Adapter模式則可能提供子系統所有功能或者部分功能。
2 從模式向上所提供的接口來說:在Facade模式中,無需按照某種已有規則對接口舉行定義,只是向上提供盡可能簡單的接口;而在Adapter模式中,Adapter向上所提供的接口必須按照已有規則進行定義(在大多數情況下,為了保持多態性),即便是有更可能簡單的接口。
從以上兩方面可以看出,Facade模式的目的就是在于盡可能的簡化接口;而Adapter模式則是把不符合定義規則的接口轉換成符合定義規則的接口。
1 從所包裝的對象或者子系統來說:Facade模式和Adapter模式都需要對一個現成的對象進行包裝。但是Facade模式所提供的功能只是子系統所提供功能的子集,即Client只使用子系統的部分功能,而不需要全部功能。Adapter模式則可能提供子系統所有功能或者部分功能。
2 從模式向上所提供的接口來說:在Facade模式中,無需按照某種已有規則對接口舉行定義,只是向上提供盡可能簡單的接口;而在Adapter模式中,Adapter向上所提供的接口必須按照已有規則進行定義(在大多數情況下,為了保持多態性),即便是有更可能簡單的接口。
從以上兩方面可以看出,Facade模式的目的就是在于盡可能的簡化接口;而Adapter模式則是把不符合定義規則的接口轉換成符合定義規則的接口。