オブジェクト指向 - オブジェクト

Advertisement

オブジェクトとは

オブジェクト指向での主たる概念は「オブジェクト」である。

オブジェクトを直訳すると"物"という意味になる。よく「オブジェクト=物」と説明されているが、この説明は厳密にはオブジェクトの概念を正しく表していない(イメージとしては悪くはない)。

オブジェクトを一言で説明するのは難しいので、以下にオブジェクトの特徴を列挙することでイメージを捕らえやすくする。

オブジェクトは責務を持っている

それぞれのオブジェクトには責務が割り当てられている。
せきむ 1 【責務】
自分の責任として果たさねばならない事柄。つとめ。
「―を全うする」「重大な―を負う」
Goo 国語辞典より
言い換えると、自分の責務以外のことは、一切意識する必要がないという事でもある。

データベースに接続して会員の情報を検索、その結果をファイルに出力する。という一連の処理を行う場合を考えてみる。この場合、データベースに関する処理を行うオブジェクトと、ファイル操作を行うオブジェクトを定義する。データベースオブジェクトはデータベースに関する責務を保持しており、接続や問い合わせなどを行う。同じように、ファイルに関するオブジェクトはファイルに関する責務を持っていて、ファイルの読み書きなどの処理を実行する。

ファイル操作のオブジェクトはデータベースオブジェクトが内部で何を行っているのか知る必要はなく、逆にデータベースオブジェクトもファイル操作オブジェクトが内部で何を行っているのか意識する必要がない。
オブジェクトと責務
図1:オブジェクトと責務

オブジェクトは属性と操作を持っている

オブジェクトは責務をこなすための属性と操作を持っている。

データベースに接続するためのオブジェクトには、ユーザー名、パスワードなどの属性と、その属性を使って処理を行う操作を持っている。オブジェクトはこの属性と操作を使用して責務を全うする。
属性と操作
図2:属性と操作

オブジェクトは他のオブジェクトにメッセージを送信する(メッセージパッシング)

前述の通り、オブジェクトは自分の持つ責務以外のことを意識する必要がない。よって、自分自身が実現できない処理は、その処理を行う責務を持っているオブジェクトに対して処理の依頼を行う必要がある。この、オブジェクトからオブジェクトへ処理を依頼することをメッセージパッシングという。オブジェクトは他のオブジェクトに対し、メッセージを送信する。

メッセージパッシング
図3:メッセージパッシング

オブジェクトは他のオブジェクトからのメッセージを受け取る

メッセージを受け取ったオブジェクトは、必要な処理を実行して結果を返す。オブジェクトは処理を依頼してきたオブジェクトについて何も知る必要がない。

オブジェクトの協調動作

上記の通り、オブジェクト指向で作られたシステムはオブジェクト同士が相互にメッセージを送ることで、オブジェクトが協調動作する。

Advertisement

ショートカット

634トップページ
このカテゴリのトップページに戻る
634ラボ

サイト検索

Google

Web サイト内

Y!ログール