##どんな記事?
- 新人エンジニアのサクッとアウトプット記事
- 具体的な内容(コード)というよりは図解で"ざっくり"理解するのが目的
##オブジェクト指向とは
閲覧されている方は既知の内容だとは思いますが一応おさらい
- プログラミングにオブジェクトという概念を持ち込んだ考え方。
- オブジェクトは一般的にクラスで定義。
- クラス内でそのオブジェクト関する変数やメソッドを定義する。
- クラスはオブジェクトの設計図。それを元に実体化させたものがインスタンス
- クラスの定義を引き継いでさらに機能を拡張することを継承という。
##委譲とは
##継承との違い
継承は親クラスの内容をすべて引き継ぎ、委譲は委譲元の振る舞いを一部引き継ぐ
継承
使い分け
- 継承はふるまいを拡張したい時
- 例:”クルマ”クラスを親として”電気自動車”クラスを作って"充電"というふるまいを拡張する
- 委譲は役割を分けて委ねたい時
- 単一責任の原則(一つのクラスに二つ以上の役割があってはならない)を満たして保守性を上げる
- 例:ユーザーを表現する"User"クラスにその情報をDBに保存するビジネスロジックはあってはならない
- 元クラスと同じ分類だが役割が違う場合に使う。
- (同じユーザーを扱うクラスでも値の表現するクラスと保存するクラスは違うロジック)
- 単一責任の原則(一つのクラスに二つ以上の役割があってはならない)を満たして保守性を上げる