Swift 重學設計模式系列之工廠模式

2021-10-09 07:13:54 字數 640 閱讀 2630

工廠方法(factorymethod)模式的定義:定義乙個建立產品物件的工廠介面,將產品物件的實際建立工作推遲到具體子工廠類當中。這滿足建立型模式中所要求的「建立與使用相分離」的特點。

工廠方法模式的主要優點有:

•    使用者只需要知道具體工廠的名稱就可得到所要的產品,無須知道產品的具體建立過程;

•    在系統增加新的產品時只需要新增具體產品類和對應的具體工廠類,無須對原工廠進行任何修改,滿足開閉原則;

enum bandlevel 

class shoe

func printinfo()

}class putianshoesfactory

}}let factory = putianshoesfactory()

factory.makeshoes(bandlevel: .expensive).printinfo()

factory.makeshoes(bandlevel: .normal).printinfo()

factory.makeshoes(bandlevel: .cheap).printinfo()

//品牌:阿迪王=尺碼:43

//品牌:安踏=尺碼:43

//品牌:耐克=尺碼:43

Swift 重學設計模式系列之組合模式

組合 composite 模式的定義 有時又叫作部分 整體模式,它是一種將物件組合成樹狀的層次結構的模式,用來表示 部分 整體 的關係,使使用者對單個物件和組合物件具有一致的訪問性。組合模式的主要優點有 1.組合模式使得客戶端 可以一致地處理單個物件和組合物件,無須關心自己處理的是單個物件,還是組合...

Swift 重學設計模式系列之模板方法模式

模板方法 template method 模式的定義如下 定義乙個操作中的演算法骨架,而將演算法的一些步驟延遲到子類中,使得子類可以不改變該演算法結構的情況下重定義該演算法的某些特定步驟。它是一種類行為型模式。該模式的主要優點如下。1.它封裝了不變部分,擴充套件可變部分。它把認為是不變部分的演算法封...

Swift 重學設計模式系列之介面卡模式

介面卡模式 adapter 的定義如下 將乙個類的介面轉換成客戶希望的另外乙個介面,使得原本由於介面不相容而不能一起工作的那些類能一起工作。介面卡模式分為類結構型模式和物件結構型模式兩種,前者類之間的耦合度比後者高,且要求程式設計師了解現有元件庫中的相關元件的內部結構,所以應用相對較少些。該模式的主...