program study story

プログラムの勉強 アウトプット

フレームワークとライブラリの違いは?

フレームワーク

全体の処理の流れが実装されており、その中の一部の具体的な処理を自分で実装して、はめ込めるようになっているシステム」はめ込めるようになっている箇所をホットスポットという

 「アプリケーションはこのように開発すべし」という基本的な設計方針を、再利用可能なクラスによって示したもので、決まりに従って所定のクラスを実装していくだけで、一定の品質をもったアプリケーションを作れる。

骨組みとなる部分が用意されているが、骨組みとなる部分とは、アプリケーションをどのような役割のクラスを組み合わせて構成するか、といった設計作業のこと。

 

ただ、どんなアプリケーションの開発にも使える、万能さはフレームワークにはない。

 

ライブラリ

使いたい部品が入っている道具箱。

イメージしやすいのが、C言語標準ライブラリ

これを見て分かるのは、

フレームワークみたいな全体を動かすためのロジックがない。ただの部品の集まりである。

一方、ライブラリは、汎用的な機能を提供する再利用可能なクラス群。数学関数を集めたライブラリ、プログラムの動作ログを記録するためのライブラリなど、どんなアプリケーションでも使われる機能が中心。

ライブラリは、どういった順番で組み合わせて、どんなアプリケーションを構築するか、という設計上の判断はプログラマに任されている。

以上のことから

ライブラリは、コードの再利用を目的に!

フレームワークはアプリケーションの設計レベルの再利用を目的に!

ライブラリは設計上の判断が委ねられている

フレームワークは設計上の判断はすでになされている。

C言語はクラスがない言語なので、再利用可能な関数の集まりが、ライブラリ。

C#のようにクラスのある言語で、再利用可能なクラスをまとめたものが、クラスライブラリ。

 

.NET Framework クラスライブラリは、.NET Framework上で使うためのクラスのライブラリ。「フレームワーク=クラスライブラリ」ではない。