IT業界料理人「メリ爺」です。
料理インスタンスの生成の実装仕方をオブジェクト指向を用いて解説していきます。
今回の実装はタンドリーチキンのインスタンス化です。
動画でも解説しています。
よろしければ高評価、チャンネル登録お願いします!
利用クラス
今回利用するクラスはこちらになります。
食材クラス
- 鶏モモ肉
- ヨーグルト
- カレー粉
- 塩
- コショウ
器具クラス
- ジップロック
- オーブン
調理クラス
- 料理人
完成品クラス(これをインスタンス化します)
- タンドリーチキン
料理をインスタンス化するための実装
オーブンがファクトリークラスになる訳なんですが、ただ鶏肉を入れて焼くメソッドを実行してもタンドリーチキンのインスタンス化する事はできません。
と言う訳で正しくタンドリーチキンをインスタンス化する実装方法を説明していきます。
それではさっそくタンドリーチキンをインスタンス化していきましょう!
// 下ごしらえ
まずは下ごしらえです。
鶏モモ肉の味付けコレクションに塩とコショウをAddItem()します。
鶏肉.味付け.AddItem(塩);
鶏肉.味付け.AddItem(コショウ);
ムラがないようしっかりと揉みこんでいきます。
次はジップロックを使って鶏肉をヨーグルトとカレー粉に漬け込んでいきます。
ジップロックインスタンスが無い場合はビニール袋インスタンスでも大丈夫です。
ビニール袋はジップロックのスーパークラスだから代替可能です。
それでは漬け込んでいきます。
まずジップロックの中身コレクションにヨーグルトをAddItemします。同じくカレー粉もAddItemします。最後に鶏肉をAddItemしたらジップロックの【ロック】メソッドをコールします。
ビニール袋の場合は【縛る】メソッドになります
しばらく漬け込むために寝かせます。
引数には18,000,000msを指定して【寝る】メソッドをコールします
(5時間ほど寝かします)
ジップロック.中身.AddItem(ヨーグルト);
ジップロック.中身.AddItem(カレー粉);
ジップロック.中身.AddItem(鶏肉);
ジップロック.Lock();
ジップロック.寝る(18,000,000);
【寝る】メソッドの効果で鶏肉の味付けコレクションに少しずつにカレー味と酸味、甘みなどがAddItemされて、更に肉の柔らかさプロパティがアップするぞ!
// 焼き処理
ジップロックから鶏肉をGetItem(取り出し)したら、オーブンの中身コレクションにAddItemしていきます。全ての肉をAddItemしたら、オーブンの【焼き】メソッドをコール!
引数の温度は250度、時間は25分に設定しました。
foreach (中身 in ジップロック.中身) {
if (typeof(鶏肉) == 中身.GetType()){
オーブン.中身.AddItem(中身);
}
}
オーブン.焼き(250,150000);
料理人が鶏肉の焼き状態を見ながら焼き時間を調節していきます。
陥りがちなのが、焼けたか判定をオーブンや鶏肉に実装してしまう事です。
オーブンや鶏肉が勝手に丁度良い焼き加減で調節したら怖いと思いますよね。
鶏肉の色プロパティを調理人が見て判断して焼き時間を調節する。これは料理人の責務ですね。実際に今回は25分じゃ足りなくて35分焼きました。
オーブンに入れても小まめにチェックしていきましょう!
さて焼き時間が完了したらオーブンから焼き上がりイベントが発生します。
オーブンをオープンして中身をGetItemしていきます。
手順通り実装できていれば、オーブンの中身からGetItemできるのは鶏肉インスタンスじゃなくてタンドリーチキンインスタンスです。焼きメソッドの中で鶏肉からタンドリーチキンインスタンスに型変換されています。
// テスト(実食)
それではテストしていきます。
見て!!めっちゃうまそう!!!
早速デバッグしましょう!
うめー!!!!!
うん!バグ無し!実装大成功です!!
それで次の実装をお楽しみに!!
最後までお付き合い頂きありがとうございました。
よろしければはてなブックマークやいいね!などしていただけると嬉しいです!
また、ブログランキングに参加していますので、お帰りの際にポチッとして頂けると嬉しいです。
にほんブログ村
では、また。
コメント