定義(百度百科):
在電腦程式設計中,適配器模式(有時候也稱為包裝樣式或包裝)將一個類別的介面適配成使用者所期待的。
一個適配允許通常因為介面不相容而不能在一起工作的類別工作在一起,做法是將類別自己的介麵包裹在一個已存在的類別中。
UML類別圖表:
#
##特定程式碼:
public class Client {public static void main(String[] args) { Adaptee adaptee = new Adaptee(); Adapter adapter = new Adapter(adaptee); adapter.request(); } }public interface Target {void request(); }public class Adaptee {void adapteeRequest() { System.out.println("本类"); } }public class Adapter implements Target { Adapter(Adaptee adaptee) {this.adaptee = adaptee; }private Adaptee adaptee; @Overridepublic void request() { System.out.println("适配类"); adaptee.adapteeRequest(); } }
範例說明: 此模式日常的例子,最常見的是各種不同的轉接口,Mac本連投影儀,通常都是需要轉接口轉接一下的,這就是適配器模式。
在實際開發的例子中,現在系統都是迭代開發的,一步步累計,出現的情況就是,同樣的功能可能有兩個或多個不同的接口,
有的需要調用之前的,有的呼叫後來的,都亂掉了,那就需要加一層適配器,把兩個新舊的兼容起來。
適用場景: 你想使用一個已經存在的類,而它的介面不符合你的需求。
你想要建立一個可以重複使用的類別,該類別可以與其他不相關的類別或不可預見的類別(即那些介面可能不一定相容的類別)協同工作。
你想使用一些已經存在的子類,但是不可能對每一個都進行子類化以匹配它們的介面。物件適配器可以適應它的父類別介面
優缺點:
優點:更好的複用性和擴充性
很多的適配器結合起來,會讓系統過於過亂,不容易掌握。
總結:適配器模式相對簡單,總結起來就是兩個字“相容”,這就是這種模式的精髓,當然系統不需要相容更好。
以上是Java中的設計模式--適配器模式的詳細內容。更多資訊請關注PHP中文網其他相關文章!