1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
|
* 打印策略接口 */ 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!")
|