デザインパターンのまとめ記事
# オブジェクト指向とデザインパターン この記事では、Unityのパッケージを解析していく前に、プログラムの設計に使われるデザインパターンについて網羅的に記載したいと思います。 また、パッケージを解析しながら使われているパターンについて説明を随時追加していきたいと思います。 ## オブジェクト指向とは何か? オブジェクト指向とは、プログラムを「オブジェクト」というフィールドとメソッドの一体化した単位に分割して設計する方法です。オブジェクト指向は、現実世界に存在する対象や事象をプログラムで表現しやすくするための仕組みです。 例えば、人間をオブジェクトとして表すとすると、以下のようになります。 |フィールド|データ| |---|---| |name|人間の名前| |age|人間の年齢| |メソッド|コード| |---|---| |talk|人間が話す操作| |walk|人間が歩く操作| このように、オブジェクトは自分自身のフィールドとメソッドを持ちます。オブジェクトはメッセージという形で他のオブジェクトに要求や応答を送受信することができます。これにより、オブジェクト間の通信や協調が容易になります。 オブジェクト指向プログラミングは、オブジェクト指向以前の手法(例えば手続き型プログラミング)と比較すると以下のような特徴があります。 |特徴|オブジェクト指向プログラミング|手続き型プログラミング| |:----|:----|:----| |プログラムの単位|オブジェクト(データとコードの一体化)|モジュール(手続きや関数)| |データの管理|カプセル化(オブジェクトが自分のデータを管理し、外部からのアクセスを制限する)|グローバル(データは共通の場所に置かれ、どのモジュールからでも参照できる)| |処理の流れ|地方分権(オブジェクト同士がメッセージをやり取りしながら処理を進める)|中央集権(メインプログラムがモジュールを呼び出して順番に処理を進める)| |再利用性|継承(オブジェクトは他のオブジェクトから機能や特徴を引き継ぐことができる)|ポリモーフィズム(モジュールは他のモジュールと同じ名前や形式であれば異なる処理を行うことができる)| |現実との対応|現実の物体や概念に対応しやすい|現実の物体や概念に対応しにくい| ## なぜオブジェクト指向が...