🖥

レストラン「デメテルの法則」

2023/08/26に公開

第一日

とあるレストランを訪れたお客さん。

メニューにはこう書かれています。
「シェフと料理をお選びください」

image

お客さんは、シェフのアリスにカレーを注文しました。

Restaurant.alice.curry

# => Yes sir! I cooked curry.

「これは、うまい!」
無事満腹になりました。

第二日目

あまりの美味しさに、今日も同じレストランを訪れたお客さん。
今度はボブにカレーを注文しました。

Restaurant.bob.curry

# => CookingError: I could not cook curry!

よく分かりませんが、ボブはカレーを作れないようです。
(そんなシェフがいる? あとで聞いた話によると、ボブは慢性的カレー粉アレルギーということです)

仕方がないので、ステーキを注文することにしました。

Restaurant.bob.stake

# => Yes sir! I cooked stake.

カレーは食べられなかったもの、無事満腹になりました。
(ボブはカレーを作れない。じゃあ何故、シェフを選ばせるんだろう?)

第三日目

レストランのメニューが変わっていました。
今日からは、料理だけを選べば良いみたいです。

image

今日はお腹が空いているので、カレーとステーキの両方を注文しました。

Restraunt.curry 
# => Yes sir! I cooked curry.
Restraunt.stake
# => Yes sir! I cooked stake.

やったね! どちらも美味しくいただきました。

厨房ではアリスがカレーを、ボブがステーキを作ってくれたみたいですが、お客さんはシェフまで選ぶ必要はありません。
(今後はキャロルやデイブがシェフとして雇われて、カレーやステーキを作るようになるかもしれません)

エピローグ

こうやってお客さんもアリスもボブも幸せに暮らし、レストランも永遠に繁盛しましたとさ。

めでたしめでたし。

コード例

カレーを作れるアリス

class Alice
  def self.curry
    puts 'Yes sir! I cooked curry.'
  end
end

ステーキを作れるボブ

class Bob
  def self.stake
    puts 'Yes sir! I cooked stake.'
  end
end

不親切なレストラン ( before )

class Restaurant
  def self.alice
    Alice
  end

  def self.bob
    Bob
  end
end

親切なレストラン ( after )

class Restaurant
  def self.curry
    Alice.curry
  end

  def self.stake
    Bob.stake
  end
end

備考

  • ツッコミあれば教えてください。

環境

  • ruby 2.4.0

チャットメンバー募集

何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。

https://line.me/ti/g2/eEPltQ6Tzh3pYAZV8JXKZqc7PJ6L0rpm573dcQ

Twitter

https://twitter.com/YumaInaura

公開日時

2017-03-09

Discussion