SwiftでGofのデザインパターンstrategyの備忘録
忘れそうだったのでメモ
// タイプコード
enum Type {
case A, B, C
}
func execute(type: Type) {
strategyForType(type: type).execute()
}
//返り値にプロトコルを採用することもできる
func strategyForType(type: Type) -> Strategy {
switch type {
case .A: return StrategyA()
case .B: return StrategyB()
case .C: return StrategyC()
}
}
protocol Strategy {
func execute()
}
class StrategyA: Strategy {
func execute() {
print("Aが呼ばれる")
}
}
class StrategyB: Strategy {
func execute() {
print("Bが呼ばれる")
}
}
class StrategyC: Strategy {
func execute() {
print("Cが呼ばれる")
}
}
語彙説明
###タイプコード
オブジェクトの種別を表す値のこと
交通手段として、徒歩/電車/タクシーがあった場合
徒歩...0
電車...1
タクシー...2
このときの0,1,2がタイプコード