LoginSignup
5
0

More than 3 years have passed since last update.

オブジェクト指向を雑に解釈してみる〜カレーのレシピに落とし込んだ〜

Last updated at Posted at 2019-12-18

はいっ今回はですね
いい加減ネタも尽きてきて

オブジェクト指向をカレー作りに例えて雑に!!!!!解釈したものを!どっかどっかと!記述しようかと!思います!
(自分の頭の中整理・言語化が主な目的です。)

前提

オブジェクト指向というのはあくまで「概念」であって、特に正解は無いんじゃないかなと思ってます。
人によって捉え方はマチマチなので、この記事も
「この人はこういう風に捉えてるんだな」・「こういう考え方も確かにできるね」と思っていただけると。

間違ってたら優しくコメントください。

もう一度復唱しましょう、はい、一緒に。せーの。

や さ し く

では、いっていみよう

誰向け

私(初心者)向けです。
もし勘違いがあったら優しく教えてください。

オブジェクト

オブジェクトというのは「物」と捉えてください。とにかく「物」です。
今回はカレーの材料としましょう。

とすると、以下がオブジェクトになるでしょう。

  • 豚バラブロック
  • にんじん
  • 玉ねぎ
  • じゃがいも
  • カレールー
  • サラダ油

ここでは上記を定義しましたが、定義によってはカレーライスもオブジェクトになったりします。
とりあえず、「物」です。

クラス

ここではクラスを「役割ごとに分類したもの」とします。
今回は「カレーができあがるまでの工程の1つ1つ」を役割と定義し、分類します。

そうすると

  • 具材を揃えるクラス
  • 調味料を揃えるクラス
  • 道具を揃えるクラス
  • 調理クラス
  • 盛り付けクラス

ざっとこんなもんでしょうか。
こんな感じで雑に分類します。
(実務では雑に分類しちゃだめですよ!)

プロパティ

プロパティはオブジェクトの説明です。
今回で言うところの「材料の説明」になります。

class にんじん {
  色 = オレンジ色;
  味 = 少し甘い;
  産地 = 国産;
  量 = 1本;
}

メソッド

メソッドは、実際の命令(function)に値するかと思います。
具体的な動作(何をどうするか)を指定し、カレーを作っていきます。

class 調理 {

    function 野菜を切る {
        具材を揃えるクラス呼び出して切る
    }
    function 具材を炒める {
        具材を揃えるクラスを呼び出して切る
    }
    function 煮込む {
        水を入れてカレールーを入れて20分煮込む
    }
}

class 盛り付け {

    function しゃもじを取り出す {
        しゃもじ出す
    }
    function ルーをごはんにかける {
        調理クラスを呼び出してご飯にかける
    }
}

盛り付け();

uploading-0

最後に盛り付けてカレーライスの完成です。

おまけ?インスタンス

カレーが1週間とか続いたらしんどいと思うんです。
だから、カレールーを再利用しましょう。

ということで、インスタンス(オブジェクトもメソッドも)で再利用します。
カレーうどんでも作りましょうか。

new(カレーうどん).調理 {
    function カレーうどん作る {
        調理クラスを呼び出し、だし汁と麺追加
    }
}

結局何が言いたいのか

今回は雑of雑にオブジェクト指向を紹介しました。
言いたいことは3つ。

  • 定義や分類の仕方はまちまち。これが正解でも不正解でも無いと思ってます。
  • オブジェクト指向は使い回しや再利用できて便利。
  • 優しくして

結局は実際にDB設計であったりコードに落とし込んで実践的にやったほうが
なるほどなとなると思います。文章だけではなかなか難しいです。

参考URL

以下のURLを参考に書かせていただきました!ありがとうございます。

5
0
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
  3. You can use dark theme
What you can do with signing up
5
0