search
LoginSignup
0

posted at

updated at

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

こんにちは、文脈です。

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

まとめ

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

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

ソースコード

人参・じゃがいも・玉ねぎ
これは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日目のカレーを楽しみたいあなたも、台所にそのままにせず、かき混ぜてよく冷まして冷蔵庫へ!

おわり。

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
What you can do with signing up
0