概述:
在軟體系統中,由於應用環境的變化。常常需要將「一些現存的物件」放在新的環境中應用,但是新的環境中要求的介面是這些現存物件所不能滿足的。那麼如何應對這種「遷移的變化」?如何既能利用現有的物件的良好實現,同時有能滿足新的應用環境所要求的介面?這就是本文要說的adapter模式。
生活中的例子:
介面卡模式允許將乙個類的介面轉換成客戶期望的另乙個介面,使得原本由於介面不相容而不能一起工作的類可以一起工作。扳手提供了乙個介面卡的例子,乙個空套在乙個齒上,齒輪的每個邊的尺寸是相同的。生活中的例子:6號板子能那解開6號的螺絲,8號的板子能解8號的螺絲。我們需要做的就是將用8號的板子來開啟6號的螺絲。
介面卡模式解說:
我們還是以日誌記錄程式為例子說明adapter模式。現在有這樣乙個場景,假設我們在軟體開發中要使用乙個第三方的日誌記錄工具,該日誌記錄工具支援資料庫日誌記錄databasetlog和文字檔案記錄filelog兩種方式,它提供給我們的api介面是writer()方法,使用方法如下:
log.write("logging message!");
當軟體系統開發進行到一半時,處於某種原因不能繼續使用該日誌記錄工具了,需要採用另外乙個日誌記錄工具,他同樣也支援資料庫日誌記錄database_log和文字檔案記錄file_log兩種方式,只不過他提供我們的api介面是write_log()方法,使用方法如下:
log.write_log("logging message");
下面是我們新編程式的**實現:
public abstract class logadaptee
public class databaselog:logadaptee
}public class filelog:logadaptee
未完待續。。。。。。
java設計模式6 介面卡模式(Adapter)
我們接著討論設計模式,上篇文章我講完了5種建立型模式,這章開始,我將講下7種結構型模式 介面卡模式 裝飾模式 模式 外觀模式 橋接模式 組合模式 享元模式。其中物件的介面卡模式是各種模式的起源,我們看下面的圖 介面卡模式將某個類的介面轉換成客戶端期望的另乙個介面表示,目的是消除由於介面不匹配所造成的...
Java設計模式五 介面卡模式 Adapter
將一類的介面轉換成客戶希望的另外乙個介面,adapter模式使得原本由於介面不相容而不能一起工作那些類可以一起工作。適用情況 使用的前提是 介面中規定了所有要實現的方法 但乙個要實現此介面的具體類,只用到了其中的幾個方法,而其它的方法都是沒有用的。實現方法 用乙個抽象類實現已有的介面,並實現介面中所...
設計模式系列 介面卡模式
見名知其意,介面卡可用於對多個不相容介面提供適配橋梁 介面卡模式屬於結構型模式。在現實世界中,這個模式適用的較為廣泛,比如 diy 一些電子產品,主要元器件提供的是標準介面,那麼無論我們購買什麼品牌的元器件,最終都能組裝起來正常執行。1 定義擴充套件介面和受支援的型別 public inte ce ...