設計模式思考----適配器模式
來源:程序員人生 發布時間:2015-05-26 08:08:26 閱讀次數:3281次
將1個類的接口轉換成客戶希望的另外1個接口。Adapter模式使得本來由于接口不兼容而不能1起工作的那些類可以在1起工作。
解決的問題:
即Adapter模式使得本來由于接口不兼容而不能1起工作的那些類可以在1起工作。
類圖:

模式中的角色
目標接口(Target):客戶所期待的接口。目標可以是具體的或抽象的類,也能夠是接口。
需要適配的類(Adaptee):需要適配的類或適配者類。
適配器(Adapter):通過包裝1個需要適配的對象,把原接口轉換成目標接口。
注:在GoF的設計模式中,對適配器模式講了兩種類型,類適配器模式和對象適配器模式。由于類適配器模式通過量重繼承對1個接口與另外一個接口進行匹配,而C#、java等語言都不支持多重繼承,因此這里只是介紹對象適配器。
優點:
通過適配器,客戶端可以調用同1接口,因此對客戶端來講是透明的。這樣做更簡單、更直接、更緊湊。復用了現存的類,解決了現存類和復用環境要求不1致的問題。將目標類和適配者類解耦,通過引入1個適配器類重用現有的適配者類,而無需修改原有代碼。1個對象適配器可以把多個不同的適配者類適配到同1個目標,也就是說,同1個適配器可以把適配者類和它的子類都適配到目標接口。
缺點:對對象適配器來講,更換適配器的實現進程比較復雜。
適用處景:系統需要使用現有的類,而這些類的接口不符合系統的接口。想要建立1個可以重用的類,用于與1些彼此之間沒有太大關聯的1些類,包括1些可能在將來引進的類1起工作。兩個類所做的事情相同或相似,但是具有不同接口的時候。舊的系統開發的類已實現了1些功能,但是客戶端卻只能以另外接口的情勢訪問,但我們不希望手動更改原有類的時候。使用第3方組件,組件接口定義和自己定義的不同,不希望修改自己的接口,但是要使用第3方組件接口的功能。
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈