プログラマの方ならすでにご存知かと思いますが、それ以外の方にはあまり馴染みのないものかもしれません。
まずは、ここが基本の基本。
コンテンツ
オブジェクトってなに?
Object(オブジェクト)を英和辞書でひくと、下のような回答が返ってきます。- (知覚できる)物,物体.
- 〔動作・感情などの〕対象 〔of,for〕.
- 目的,目標.
- 《英口語》 おかしな[みじめな,へんてこな,みっともない]もの[人].
- 【文法】 目的語.
- 【哲】 対象,客観,客体 (subject).
物、物体。そして、対象です。
オブジェクト指向でいう「オブジェクト」とは、要するに物事のことです。
生活の中のオブジェクト
あなたが何かについて考えるとき、そこにはさまざまな物事がからんできます。それらひとつひとつのことを「オブジェクト」と呼んでいるのです。
例えばこういう問題について考えてみます。
あなたはお腹が空いて、カレーが食べたいと思っています。ここには、どのようなオブジェクトが存在するでしょうか?
台所には、にんじんとじゃがいもがあります。
しかし、肉とカレー粉はないので、カレーを作りたかったら買い物に行かなければなりません。
すぐにわかるのは、登場する物の名前です。
- あなた(そう、あなた自身のようなヒトもオブジェクトなのです)
- お腹
- カレー
- 台所
- にんじん
- じゃがいも
- 肉
- カレー粉
実は、他にもオブジェクトはあります。
先ほど、オブジェクトとは「物事」であると言いました。
オブジェクトには、「物」と「事」があるのです。
例えばこれらも、オブジェクトととらえる事ができます。
- 空腹
- 買い物
さらにもっと掘り下げてみると、
- カレーを含む「料理」というオブジェクト
「カレー」は「料理」の一種です。 - にんじんやじゃがいもを含む「野菜」というオブジェクト
「にんじん」も「じゃがいも」も「野菜」の一種です。 - 肉や野菜を含む「食材」
「肉」も「野菜」も「食材」の一種です。
結局、何をオブジェクトととらえるかは、あなたの見方次第です。
この問題を
- 空腹を満たす
という問題であるととらえれば、たぶん「空腹」「カレー」「買い物」というオブジェクトに着目するといいでしょう。 - カレーを作る、あるいは買い物
という問題であるととらえれば、「にんじん」「じゃがいも」「肉」「カレー粉」でしょうか。
問題領域
あなたの生活の中で、このように問題として着目している場面というか、影響範囲の事を「問題領域」と言います。まずあなたの心を悩ます問題の影響範囲を、このようにできるだけはっきりさせる事、そしてその領域の中に存在するオブジェクトを発見する事が、オブジェクト思考の第1歩なのです。
で、なにが嬉しいの?
はい。問題領域を区切り、その中に存在するオブジェクトを発見すると、次にオブジェクトそれぞれの性質を見極める事ができるようになります。
そして、それぞれのオブジェクト同士がどんな風に影響し合っているのかという、オブジェクトの関連がわかります。
そうすると、そういうオブジェクト達がどのように問題を作り出しているのかが理解できるようになるというわけです。
問題の全体像がわかれば、解決策を見いだすのは簡単ですね。
人間は、自分を取り巻く環境の姿を、わかっているようで意外とわかっていないものです。
アタマを悩ます問題を、なかなか解決できなかったりするのは、あなたが優柔不断だからとか、そういうことが原因ではない場合も多いのです。
問題自体が理解できなければ、解決のしようもないのは当たり前の事です。
問題を解決するために、よりよく理解する。
そのための手段が、オブジェクト指向なのです。
なにしろこのオブジェクト指向、実績ならいくらでもあります。
人間がやりたい事をコンピュータに手伝わせるというソフトウェアの世界では、もう当たり前の手段なのですから。
ソフトウェアは、大雑把に言えば人間がかかえる問題を分析し、その解決手段を実装するためにあります。
ビジネスから一般家庭の問題、果てはエンターテイメントまで、コンピュータソフトウェアはさまざまな要求や問題を解決します。
その世界で生かされているオブジェクト指向は、きっとあなたの要求や問題も、解決してくれると思いませんか?
オススメ
開発者の方向けのオブジェクト指向入門には、オブジェクト脳のつくり方がオススメです。オブジェクト指向でソフトウェアを考えるためのコツがわかります。
基本的なことをひととおり、比較的楽に理解することができるでしょう。
0 件のコメント:
コメントを投稿