Swift设计模式之抽象工厂模式

Swift设计模式之抽象工厂模式,第1张

概述转自 Swift设计模式 原文 Design-Patterns-In-Swift // 抽象工厂模式// 百度百科:为创建一组相关或相互依赖的对象提供一个接口,而且无需指定他们的具体类// 设计模式分类:创建型模式import Foundation/** * 抽象工厂 */protocol Decimal { func stringValue() -> String

转自

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设计模式之抽象工厂模式所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/web/1076297.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存