Swift設計モードの策略モード
自動回転 Swift設計モード テキスト Design-Patterns-Inn-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!")