转自
Swift设计模式原文
Design-Patterns-In-Swift// 抽象工厂模式// 百度百科:为创建一组相关或相互依赖的对象提供一个接口,而且无需指定他们的具体类// 设计模式分类:创建型模式import Foundation/** * 抽象工厂 */protocol Decimal { func stringValue() -> String // 工厂方法 static func make(string : String) -> Decimal}typealias NumberFactory = (String) -> Decimal// Number implementations with factory methods/** * 具体工厂 */struct NextStepNumber : Decimal { private var nextStepNumber : NSNumber func stringValue() -> String { return nextStepNumber.stringValue } // 工厂方法 static func make(string : String) -> Decimal { return NextStepNumber(nextStepNumber:NSNumber(longLong:(string as Nsstring).longLongValue)) }}/** * 具体工厂 */struct SwiftNumber : Decimal { private var swiftInt : Int func stringValue() -> String { return "\(swiftInt)" } // 工厂方法 static func make(string : String) -> Decimal { return SwiftNumber(swiftInt:(string as Nsstring).integerValue) }}enum NumberType { case NextStep,Swift}enum NumberHelper { static func factoryFor(type : NumberType) -> NumberFactory { switch type { case .NextStep: return NextStepNumber.make case .Swift: return SwiftNumber.make } }}let factoryOne = NumberHelper.factoryFor(.NextStep)let numberOne = factoryOne("1")numberOne.stringValue()let factoryTwo = NumberHelper.factoryFor(.Swift)let numberTwo = factoryTwo("2")numberTwo.stringValue()总结
以上是内存溢出为你收集整理的Swift设计模式之抽象工厂模式全部内容,希望文章能够帮你解决Swift设计模式之抽象工厂模式所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)