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!")