介面卡模式是一種結構型設計模式,用於將一個類的介面轉換成另一個客戶期望的介面。這種模式可以讓原本由於介面不相容而無法在一起工作的類能夠協同工作。
以下是一個簡單的介面卡模式的示例程式碼:
using System; // 目標介面 interface ITarget { void Request(); } // 適配者類 class Adaptee { public void SpecificRequest() { Console.WriteLine("This is a specific request from Adaptee."); } } // 類介面卡 class Adapter : Adaptee, ITarget { public void Request() { base.SpecificRequest(); } } class Program { static void Main() { // 建立介面卡物件 ITarget adapter = new Adapter(); // 呼叫介面卡以發出請求 adapter.Request(); } }
在上面的示例中,我們定義了一個目標介面 ITarget
,其中包含一個 Request()
方法。然後我們定義了一個適配者類 Adaptee
,它有一個特定的方法 SpecificRequest
,目前不符合目標介面。接著我們建立一個介面卡 Adapter
類,它繼承了 Adaptee
類並實現了 ITarget
介面,將 SpecificRequest
方法適配成了 Request
方法。
在 Main()
方法中,我們例項化了一個介面卡物件 adapter
,雖然介面是 ITarget
,但底層實現使用的是 Adapter
。當呼叫 Request()
方法時,實際上會執行 Adapter
類中的 SpecificRequest()
方法,實現了介面卡模式的作用。
介面卡模式可以幫助我們解決既有類和新程式碼之間介面不匹配的問題,使得它們可以一起工作而不需要修改原有程式碼。