Swift设计模式之工厂方法模式

Swift设计模式之工厂方法模式,第1张

概述转自 Swift设计模式 原文 Design-Patterns-In-Swift // 工厂方法模式// 百度百科:是一种常用的对象创建型设计模式,此模式的核心精神是封装类中不变的部分,提取其中个性化善变的部分为独立类,通过依赖注入以达到解耦、复用和方便后期维护拓展的目的。它的核心结构有四个角色,分别是抽象工厂;具体工厂;抽象产品;具体产品// 设计模式分类:创建型模式/** * 抽象产品

转自

Swift设计模式

原文

Design-Patterns-In-Swift
// 工厂方法模式// 百度百科:是一种常用的对象创建型设计模式,此模式的核心精神是封装类中不变的部分,提取其中个性化善变的部分为独立类,通过依赖注入以达到解耦、复用和方便后期维护拓展的目的。它的核心结构有四个角色,分别是抽象工厂;具体工厂;抽象产品;具体产品// 设计模式分类:创建型模式/** * 抽象产品(货币) */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"    }}/** 国家 - UnitedStates: 美国 - Spain: 西班牙 - UK: 英国 - Greece: 希腊 */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        }    }}let noCurrencyCode = "No Currency Code Available"CurrencyFactory.currencyForCountry(.Greece)?.code() ?? noCurrencyCodeCurrencyFactory.currencyForCountry(.Spain)?.code() ?? noCurrencyCodeCurrencyFactory.currencyForCountry(.UnitedStates)?.code() ?? noCurrencyCodeCurrencyFactory.currencyForCountry(.UK)?.code() ?? noCurrencyCode
总结

以上是内存溢出为你收集整理的Swift设计模式之工厂方法模式全部内容,希望文章能够帮你解决Swift设计模式之工厂方法模式所遇到的程序开发问题。

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

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存