介面卡模式(adapter)的定義如下:將乙個類的介面轉換成客戶希望的另外乙個介面,使得原本由於介面不相容而不能一起工作的那些類能一起工作。介面卡模式分為類結構型模式和物件結構型模式兩種,前者類之間的耦合度比後者高,且要求程式設計師了解現有元件庫中的相關元件的內部結構,所以應用相對較少些。
該模式的主要優點如下。
• 客戶端通過介面卡可以透明地呼叫目標介面。
• 復用了現存的類,程式設計師不需要修改原有**而重用現有的適配者類。
• 將目標類和適配者類解耦,解決了目標類和適配者類介面不一致的問題。
其缺點是:對類介面卡來說,更換介面卡的實現過程比較複雜。
class user
}class userv2
}/// 介面卡 相容兩個模型的屬性
class useradapter
func userv2touser(userv2:userv2) -> user
}func printinfo(user: user)
let userv2 = userv2(nickname: "張三", age: 18)
printinfo(user: useradapter().userv2touser(userv2: userv2))
//張三,18
Swift 重學設計模式系列之工廠模式
工廠方法 factorymethod 模式的定義 定義乙個建立產品物件的工廠介面,將產品物件的實際建立工作推遲到具體子工廠類當中。這滿足建立型模式中所要求的 建立與使用相分離 的特點。工廠方法模式的主要優點有 使用者只需要知道具體工廠的名稱就可得到所要的產品,無須知道產品的具體建立過程 在系統增加新...
Swift 重學設計模式系列之組合模式
組合 composite 模式的定義 有時又叫作部分 整體模式,它是一種將物件組合成樹狀的層次結構的模式,用來表示 部分 整體 的關係,使使用者對單個物件和組合物件具有一致的訪問性。組合模式的主要優點有 1.組合模式使得客戶端 可以一致地處理單個物件和組合物件,無須關心自己處理的是單個物件,還是組合...
Swift 重學設計模式系列之模板方法模式
模板方法 template method 模式的定義如下 定義乙個操作中的演算法骨架,而將演算法的一些步驟延遲到子類中,使得子類可以不改變該演算法結構的情況下重定義該演算法的某些特定步驟。它是一種類行為型模式。該模式的主要優點如下。1.它封裝了不變部分,擴充套件可變部分。它把認為是不變部分的演算法封...