アプリケーション開発の際には、ソースコードをモジュール化して再利用部品群を使い回すことによって作るのが当たり前になっている。 こうした再利用部品群を、クラスライブラリフレームワーク、コンポーネントなどと言う

アイデアの再利用とは、各種ノウハウに名前をつけてパターン化したもの

つまりデザインパターンとは、 優れた設計のアイデアを後から再利用できるように名前をつけて文書化したもの

クラスライブラリはOOPのソフトウェア部品群

クラスライブラリは、「汎用的な機能を持つクラスをたくさん集めたもの」である

関数ライブラリとの違いは、

  1. ライブラリ中のクラスからインスタンスを生成して、メソッドと変数定義をまとめて利用できる(クラスの利用)
  2. ライブライから呼び出される側のロジックをアプリケーション固有の処理に置き換える (ポリモーフィズムの利用)
  3. ライブラリ中のクラスに、メソッドや変数を追加定義して新しいクラスを作成する (継承の利用)

Objectクラスを頂点とする継承構造

一般的に言語標準のクラスライブラリは継承構造になっており、継承構造の最上位に位置付けられる唯一のクラスが存在する。それがObjectである。

フレームワーク

フレームワークでは、ポリモーフィズムと継承が重要な役割を果たす。

基本的な処理はフレームワーク側で用意し、アプリケーション固有の処理はポリモーフィズムで呼び出す。

このフレームワークの仕組みを表す言葉として、 **「Don’t call us, we call you!」(ハリウッドの原則)**がある

( 全ての流れはフレームワーク側で決めておき、アプリケーションの処理はポリモーフィズムを使って必要な時に呼び出す仕組み。 )

コンポーネント