アプリケーション開発の際には、ソースコードをモジュール化して再利用部品群を使い回すことによって作るのが当たり前になっている。 こうした再利用部品群を、クラスライブラリ、フレームワーク、コンポーネントなどと言う
アイデアの再利用とは、各種ノウハウに名前をつけてパターン化したもの
つまりデザインパターンとは、 優れた設計のアイデアを後から再利用できるように名前をつけて文書化したもの
クラスライブラリは、「汎用的な機能を持つクラスをたくさん集めたもの」である
関数ライブラリとの違いは、
一般的に言語標準のクラスライブラリは継承構造になっており、継承構造の最上位に位置付けられる唯一のクラスが存在する。それがObjectである。
フレームワークでは、ポリモーフィズムと継承が重要な役割を果たす。
基本的な処理はフレームワーク側で用意し、アプリケーション固有の処理はポリモーフィズムで呼び出す。
このフレームワークの仕組みを表す言葉として、 **「Don’t call us, we call you!」(ハリウッドの原則)**がある
( 全ての流れはフレームワーク側で決めておき、アプリケーションの処理はポリモーフィズムを使って必要な時に呼び出す仕組み。 )