オブジェクト指向開発から派生した開発としてコンポーネント指向開発というのがあると思いますが、それらの違いがあまりはっきりわかりません。粒度がコンポーネントの方が大きい、プラットホームに限定されない、継承などの難しい(?)概念が省かれ簡略化された部品、再利用を前提としたプラグアンドプレイができるような開発とありますが、その他にどのような特徴があるのでしょうか?わかりやすく教えてください。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

あなたのお書きになっていることで、オブジェクト指向とコンポーネント指向の違いは十分だと思いますが、まだ何か具体的な疑問点がおありで

しょうか?
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qモジュールとクラスの違いってなんなんですか?

モジュールとクラスの違いってなんなんですか?

本などをみてもいまいち分かりません。

Aベストアンサー

端的かつ正確に言うと、クラスはオブジェクトで、標準モジュール(質問内でモジュールと呼んでいるのは標準モジュールのことだと思いますが)はオブジェクトではありません。
(もし、質問内でモジュールと呼んでいるのが、本当にモジュールという意味で言っているのであれば、クラスはクラスモジュールですし、フォームはフォームモジュールです。クラスはモジュールの一種です、という答えです)
使用方法で言うと、クラスはインスタンス作成時、破棄時にそれぞれイベントが発生するため、変数等の初期化や終了処理などをオブジェクト内で自動化できます。
オブジェクト内で自動化されるため、初期化手続き、参照の開放などクラスを使用する際には内部の動作を意識することなく使用することができます。
つまり、再利用性が高いと言いかえることができます。
また、VB5/6ではAddressOf演算子が標準モジュール内の関数以外には使用できないという制限があるが、それを使用しない前提では、標準モジュールで実現できることはクラスで書きかえることができます。
逆に、クラスではできる事でも、標準モジュールではできないことは山のようにあります。
#1さんが書いたように、複数のインスタンスを作成することもそうですが、当方の利用方法では、コレクションに追加できるという点を挙げたいと思います。他には、自己再起定義(造語)です。ClassA内でClassAオブジェクトを作成するような動作です。ClassA内でClassAを定義した場合、中に作成されたClassAの中にさらにClassAが定義可能で、さらにその内部にClassAが、さらにその内部に・・・と、スタックの許す限り無限に定義されます。
ポリモーフィズム、関数の引数や返り値にクラスを渡すなど、いろいろと標準モジュールには不可能な点が多くあります。

端的かつ正確に言うと、クラスはオブジェクトで、標準モジュール(質問内でモジュールと呼んでいるのは標準モジュールのことだと思いますが)はオブジェクトではありません。
(もし、質問内でモジュールと呼んでいるのが、本当にモジュールという意味で言っているのであれば、クラスはクラスモジュールですし、フォームはフォームモジュールです。クラスはモジュールの一種です、という答えです)
使用方法で言うと、クラスはインスタンス作成時、破棄時にそれぞれイベントが発生するため、変数等の初期化や終了処...続きを読む


人気Q&Aランキング