投稿

ラベル(C#)が付いた投稿を表示しています

HeadFirstデザインパターン 第6章CommandパターンをC#で軽く実装。

イメージ
自分のお勉強用 : HeadFirstデザインパターン 第6章CommandパターンをC#で軽く実装。 C#のおさらいとCommandパターンの感触を掴むため、 書籍「HeadFirstデザインパターン」の第6章Commandパターンを適当に実装。 ファイル一覧 CeilingFan.cs ICommand.cs Light.cs NoCommand.cs Program.cs RemoteControl.cs RemoteLoader.cs 実装 前述のファイル一覧の順番とは異なります。 まずはインターフェイスから。 ICommand.cs namespace csConsole { interface ICommand { void Execute(); void Undo(); } } Light.cs : コンクリートとレシーバーその1 namespace csConsole { class Light // レシーバー部分 { public Light(){} public void on() => Console.WriteLine("ライトオン です。"); public void off() => Console.WriteLine("ライトOFF です。"); } class LightOnCommand : ICommand // コンクリート部分 { Light light; public LightOnCommand(Light light) => this.light = light; public void Execute() => light.on(); public void Undo() => light.off(); } class LightOffCommand : ICommand // コンクリート部分 { Light light; public LightOffCommand(Light light) => this.light = l...