こんにちは、文脈です。
人参・じゃがいも・玉ねぎがあればなんでもできますね。
まとめ
人参・じゃがいも・玉ねぎ
∟ウインナー・コンソメを入れると→ポトフ
∟肉を足す
∟カレールウを入れると→カレー
∟しょうゆ・酒・しらたきを入れると→肉じゃが
これが「クラスの継承」です。
ソースコード
人参・じゃがいも・玉ねぎ
これはClass Konsai
としましょう。
Class Konsai
{
// 洗って皮をむいて適切な大きさに切った根菜
const KONSAI = ['ninjin', 'jagaimo', 'tamanegi'];
/**
* 根菜を煮込む
**/
public function cookKonsai(){
$nabe = ['mizu']
// 野菜を水が入った鍋に入れる
$nabe = array_merge($nabe, self::KONSAI);
// 野菜が入った鍋を火にかけてアクを取る
$cookedKonsai = $nabe + $heat - $aku;
return $cookedKonsai
}
}
Class Konsai
は便利なのでなるべくいろんな料理に使いたいです。
大鍋にいきなりカレーを入れてしまうと、毎日カレーを食べる羽目になるので、Class Konsai
を継承(小さい鍋に移)して、その中にだけカレールウを入れることにしましょう。
あと肉も入れたいけど、大鍋はウインナーポトフにも転用したいことを考えると、まずClass Konsai
を中鍋に移して肉を入れて、そこからさらに分けてカレーを作るのが良さそうです。中鍋にしょうゆ入れたら肉じゃがにもなるし。
Class Konsai_Niku extends Konsai
{
// 好きな肉を肉と定義
const NIKU = 'buta';
/**
* 肉を入れる
**/
public function addNiku($nabe){
// 鍋に肉を入れる
return array_merge($nabe, self::NIKU);
}
}
カレーも同様に作ります。
Class Konsai_Niku_Curry extends Konsai_Niku
{
// ルウってrouxっていうらしい
const CURRY_ROUX = ['spice', 'buiyon'];
/**
* カレールウを入れる
**/
public function addCurry($nabe){
// 鍋にルウを入れる
return array_merge($nabe, self::CURRY_ROUX);
}
}
天才ですね。
やはりここで大事なのは命名で、Konsai_Niku_Curry
とすることでシーフードカレーではないことがわかります。
ここまでで書いたものは「カレーの作り方の作り方」でして、これを書いただけではカレーはできません。
次にカレーのレシピを書きます。Konsai
やNiku_Konsai
から継承しているため、Konsai_Niku_Curry
は親クラスのメソッドを呼び出すことができます。
※「メソッド」を「呼び出す」とは?みたいな話は割愛します。雰囲気をお楽しみください。
/**
* カレーのレシピ
**/
$kome = new Kome;
$curry = new Konsai_Niku_Curry;
// 米を炊く
$rice = $kome->cookKome();
// 野菜を煮る
$nabe = $curry->cookKonsai();
// 肉を入れる
$nabe = $curry->addNiku($nabe);
// ルウを入れる
$nabe = $curry->addCurry($nabe);
// 雑に盛り付け
$dinner = array_merge[$rice, $nabe];
これを作る人、または自分に渡して「実行」するとカレーができます。
最後に
実生活では、カレールウは火を止めてから入れ、余熱で溶かした方がとろみが出ます。
またカレーは内側に熱がこもりやすく、傷みやすい料理です。2日目のカレーを楽しみたいあなたも、台所にそのままにせず、かき混ぜてよく冷まして冷蔵庫へ!
おわり。