LoginSignup
0
0

More than 1 year has passed since last update.

カレーは大鍋で作らない。~初心者のためのクラス継承~

Last updated at Posted at 2022-05-29

こんにちは、文脈です。

人参・じゃがいも・玉ねぎがあればなんでもできますね。

まとめ

人参・じゃがいも・玉ねぎ
∟ウインナー・コンソメを入れると→ポトフ
∟肉を足す
 ∟カレールウを入れると→カレー
 ∟しょうゆ・酒・しらたきを入れると→肉じゃが

これが「クラスの継承」です。

ソースコード

人参・じゃがいも・玉ねぎ
これは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とすることでシーフードカレーではないことがわかります。

ここまでで書いたものは「カレーの作り方の作り方」でして、これを書いただけではカレーはできません。

次にカレーのレシピを書きます。KonsaiNiku_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日目のカレーを楽しみたいあなたも、台所にそのままにせず、かき混ぜてよく冷まして冷蔵庫へ!

おわり。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0