クリーンアーキテクチャⅡ部
個人的概要
- プログラムの考え方、歴史的背景が抑えられている
- 特に5章のオブジェクト指向プログラミングではクリーンアーキテクチャで意識して触れられている
- プログラムの依存関係についての基礎的な概念について述べられている
- プログラムをIOデバイス非依存にするべき考え方は、対象は変われどクリーンアーキテクチャでは一貫して言及されているポイント
- インターフェースを用いて依存関係を逆転できること(超重要)
ポイント
オブジェクト指向
-
カプセル化
そのプログラム(関数など)の使い方だけを知っていれば、十分扱えるように一連の処理をまとめること。
メリットはロジックに対して不正な操作から保護することや、複雑な処理を表面上見えなくすることでプログラムを利用しやすくするなどがある。 -
継承
スコープ内の変数と関数のグループを再度宣言したもの。
イメージとしては、交換可能なパーツたちをつくるための規格をまとめるもの。 -
ポリモーフィズム
ある1つの関数(メソッド)の呼び出しに対し、オブジェクト毎に異なる動作をすること。
同じ鳴く処理でも動物がことなれば、鳴くという事実は同じだが鳴き声が変わるのと同じ。
依存関係の逆転
基本的な依存関係は以下の順番で依存する(システム→制御→ソースコード)。
- ソースコードの依存関係は、制御の流れに従っている
- 制御の流れはシステムの振る舞いによって決まり、ソースコードの依存関係は制御の流れによってきまる
しかし、ポリモーフィズムを利用することでソースコードの依存関係は(たとえどこにあっても逆転できる)こととなり、ソフトウェアアーキテクトに大きな影響を与えた。
このことにより、システムの依存関係を並び替えるだけで、他の方法を使わなくてもデータベースとユーザーインターフェース(UI)をビジネスルールに依存させることができる