/*:
?? Factory Method
-----------------
工廠模式是用來取代類構造函數,抽象對象的生成過程,對象實例化的類型可以在運行時決定的。
The factory pattern is used to replace class constructors, abstracting the process of object generation so that the type of the object instantiated can be determined at run-time.
### Example
*/
protocol Currency {
func symbol() -> String
func code() -> String
}
class Euro : Currency {
func symbol() -> String {
return "€"
}
func code() -> String {
return "EUR"
}
}
class UnitedStatesDolar : Currency {
func symbol() -> String {
return "$"
}
func code() -> String {
return "USD"
}
}
enum Country {
case UnitedStates, Spain, UK, Greece
}
enum CurrencyFactory {
static func currencyForCountry(country:Country) -> Currency? {
switch country {
case .Spain, .Greece :
return Euro()
case .UnitedStates :
return UnitedStatesDolar()
default:
return nil
}
}
}
/*:
### Usage
*/
let noCurrencyCode = "No Currency Code Available"
CurrencyFactory.currencyForCountry(.Greece)?.code() ?? noCurrencyCode
CurrencyFactory.currencyForCountry(.Spain)?.code() ?? noCurrencyCode
CurrencyFactory.currencyForCountry(.UnitedStates)?.code() ?? noCurrencyCode
CurrencyFactory.currencyForCountry(.UK)?.code() ?? noCurrencyCode
swift設計模式-工廠模式
最后編輯于 :
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
推薦閱讀更多精彩內容
- 抽象工廠方法模式(Abstract Factory Pattern) 一.什么是抽象工廠方法模式: 為創建一組相關...
- 前言 最近開始在研讀《設計模式》一書,書中主要是以 C++ 和 Smalltalk 為示例。所以我準備寫一系列的讀...
- 面向對象思想設計原則 在實際的開發中,我們要想更深入的了解面向對象思想,就必須熟悉前人總結過的面向對象的思想的設計...