Swift设计模式之策略模式

转自

原文

// 策略模式
// 策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化
// 设计模式分类:行为型模式

/** * 打印策略接口 */
protocol PrintStrategy {
    func printString(string: String) -> String
}

/// 打印机类
class Printer {

    let strategy: PrintStrategy

    func printString(string: String) -> String {
        return self.strategy.printString(string)
    }

    init(strategy: PrintStrategy) {
        self.strategy = strategy
    }
}

/// 大写打印策略
class UpperCaseStrategy : PrintStrategy {
    func printString(string:String) -> String {
        return string.uppercaseString
    }
}

/// 小写打印策略
class LowerCaseStrategy : PrintStrategy {
    func printString(string:String) -> String {
        return string.lowercaseString
    }
}

var lower = Printer(strategy:LowerCaseStrategy())
lower.printString("O tempora,o mores!")

var upper = Printer(strategy:UpperCaseStrategy())
upper.printString("O tempora,o mores!")

相关文章

软件简介:蓝湖辅助工具,减少移动端开发中控件属性的复制和粘...
现实生活中,我们听到的声音都是时间连续的,我们称为这种信...
前言最近在B站上看到一个漂亮的仙女姐姐跳舞视频,循环看了亿...
【Android App】实战项目之仿抖音的短视频分享App(附源码和...
前言这一篇博客应该是我花时间最多的一次了,从2022年1月底至...
因为我既对接过session、cookie,也对接过JWT,今年因为工作...