オブジェクト指向プログラミングでは極力クラスを使用したほうがいいのでしょうか?

タグの編集
投稿者 Newbie  (社会人) 投稿日時 2012/2/8 21:55:10
ちょっと書籍でかじっただけの初心者です。

オブジェクト指向では何でもクラスにまとめたほうがいいのでしょうか。

今までほそぼそとプログラミングした中でクラス使ったほうがいい機会というのがいまいちよくわからないんですがどういうときに使えばいいんでしょうか。
投稿者 ラオシス  (中学生) 投稿日時 2012/2/8 23:01:46
オブジェクト指向では、クラスが一つの単位です。
C++ではC言語とC++の両方の文法が使えるのでオブジェクト指向であるかの選択ができます。

言語によって、オブジェクト指向に完全にせよ!というものと、そうでないものがあります。
VBは完全なオブジェクト指向言語でないため、Moudleというものがあります。
Moudleを使えばオブジェクト指向に反するものを作ることが可能です。


>オブジェクト指向では何でもクラスにまとめたほうがいいのでしょうか。
いいえ。そうでもないです。上のMoudleがときたまとても重宝できます。
オブジェクト指向の理念を貫いた場合、必ずクラスが必須になります。ですが開発の場では
逆にクラスが不便な場合もあるため、反オブジェクト指向的な文法も使用します。
ですから、できるだけクラスにまとめようという考えですが、きついときはMoudleを使う等々
使い分けるとよいでしょう。
初心者ということですので、プログラミングをするうちにわかってきます。

>どういうときに使えばいいんでしょうか。
物と見立ててプログラミングするため、頭の中でそのように考えるうちに自然とクラスを用いればよいかわかるようになってきます。
ただのスタンスであるため別に従わなくてもよいということです。
しかし世の中はクラスが実装されている言語が多いというのが事実ですね。

詳しくは以下をご覧ください。
オブジェクト指向について
http://rucio.cloudapp.net/ThreadDetail.aspx?ThreadId=10603#CommentId22237

メソッドとオブジェクト指向について?
http://rucio.cloudapp.net/ThreadDetail.aspx?ThreadId=293
投稿者 ラオシス  (中学生) 投稿日時 2012/2/8 23:03:30
申し訳ないです。訂正です
>Moudle
Moduleです。
投稿者 shu  (社会人) 投稿日時 2012/2/9 08:11:05
Integerなどの基本型や構造体もクラスといえばクラスです。
それがオブジェクト指向。
http://vene.wankuma.com/ecma372/22_value_type.aspx
ただ用意されている型であるためメソッド、プロパティの追加は出来ません。

VB.NETにおいてはModuleも特殊なだけでクラスです。VB6以前との互換性のために
表記が出来るようになっているだけだと思います。
http://www.atmarkit.co.jp/fdotnet/dotnettips/248module/module.html

Formを一個作成したら1つクラスが作成されます。

Newbie さんの言っていることがClassという表記で自分で定義をする分かりやすいクラス定義の
ことを言っているのなら私の意見としてはまとまった情報を持つものはクラスとして定義したほうが
いいと思います。情報Aと情報Bが必要であり情報の関係が対等でどっちのメソッドに含めるか難しい場合はModuleを使うのがよいと思います。
投稿者 葉月  (社会人) 投稿日時 2012/2/9 21:46:16
たくさんのツールを作ると、中には共通の機能が含まれます。
画像補正、ログ取得、ファイルの読込などです。
クラスにしておけば、作成する手間が1度で済みます。

ただ、プログラムを作り始めたばかりなら、あまり深く考えなくて
いいと思います。
「この機能は、このツールでも使った」と感じたら、クラスを作成
するか検討してください。
焦らなくても、オブジェクト指向言語に慣れるとクラス量は増えて
いき、1度作った機能は再利用する癖がつきます。