2007-06-24

基礎 第2回: オブジェクトの特質

 オブジェクトの特質を捉えるためには、どうすればいいのか?
今回は、そこを考えてみたいと思います。

オブジェクトの性質は、大きく分けて「振る舞い」と「属性」の2点で捉えることができます。

コンテンツ

  1. 振る舞い
  2. 属性
  3. 何の役に立つの?
  4. オススメ



振る舞い

「人の価値は、行動で決まるのだ」
とよく言われますが、オブジェクトもそうです。
どういう振る舞い方をするのかが、そのオブジェクトのアイデンティティになります。
ここで、人とオブジェクトを同一視しているところに注目してください。
そう、オブジェクト指向では、ある意味オブジェクトを擬人化して見るのです。
前回、オブジェクトは「物事」だと言いました。
本来、物事は何も行動したりしませんね。
例えば「カレー」や「買い物」が何か行動を起こしたりしたら、怖いですよね。
でも、オブジェクト指向では物事を擬人化して見るので、これらが立派に行動することになります。
空腹のあなたがカレーを食べた時、「カレーがあなたの空腹を満たす」と捉えることもできます。
また、あなたが買い物をした時、「買い物があなたにじゃがいもやにんじんをもたらす」と捉えることもできるのです。
「カレー」オブジェクトが空腹を満たす。
「買い物」オブジェクトがあなたに商品をもたらす。
みたいなね。
このように、あなたが「これがオブジェクトだ」と(心の中で)宣言したものは、全て「振る舞い」を持ちうるのです。

属性

いきなりですが、この「属性」という言葉は、オブジェクト指向に慣れていない方にはぴんとこないんじゃないですかね。
これは性質とか特徴と言い換えると良いかもしれません。
例えば「真っ白で1辺が20cmの正方形の木綿のハンカチ」の属性は?
  • 色が白
  • 1辺の長さが20cm
  • 正方形
  • 素材が木綿
ですね。
他にも、もしそれがあなたのものなら「所有者はあなた」ということも属性になります。
こういう目に見えない性質も属性なのです。

何の役に立つの?

ここまで、まるで言葉遊びというか、思考ゲームのような話ばかりでしたね。
これだけだと、何のためにそんなまわりくどい考え方をしなければならないのか、わかりづらいですよね。
そこで、ほんとにこれで実感していただけるかどうかわかりませんが、ひとつ例を挙げてみたいと思います。
いま、あなたは6畳ワンルーム、月6万円の部屋に住んでいるとします。
アルバムや記念の品など、荷物が多すぎて、部屋はもういっぱいです。
ベッド以外は足の踏み場がないくらい。
引っ越そうか?どうしようか?
問題を分析してみましょう
まず前提として、
  • 6畳というのは、キッチンやお風呂等を除いた、実際家具を置いたり、人が座ったりできる空間の広さだとします。
  • ベッドの大きさはシングルで、説明を単純にするために、ほぼ1畳分の大きさだとします。
  • あなたは既に、荷物の整理整頓はしつくしました。
としておきましょう。
オブジェクト:
  • あなたの部屋
    • 属性:
      • 広さは6畳
      • 家賃は月6万円
    • 振る舞い:
      • 荷物の置き場を含めて、あなたに生活空間を提供する

  • 荷物
    • 属性
      • 占有する空間の広さは、合計約5畳
    • 振る舞い
      • あなたにいろいろな思い出を提供する

ここから次のような事が言えますね。
  • 広さが6畳で家賃が月6万円、そして荷物が5畳の空間を占有しているということは、あなたは荷物を保持するために月5万円支払ってる。
  • 荷物は「思い出を提供する」という振る舞いを持ち、あなたはそれを享受するために荷物を保持している。
  • つまり、あなたは思い出を保つ事に対して月5万円支払っているわけです。
  • それに対して、現在のあなた自身の生活のために支払っているのは、月1万円です。
    (ここではキッチンやお風呂などは計算に入れてませんから、実際にはもう少し違う割合になるでしょうが)
さて、これで現状分析はできました。
解決策を探しましょう
まず、あなたはこの「思い出」と「現在の生活」に対する支払いの割合に、満足ですか?
もし満足であれば、問題はないという事になります。
現在の状況に満足して、そのままお過ごしください。
満足でないのなら、次のような解決策が考えられます。
  1. 荷物のいくらかを処分する。
  2. 引っ越し先を探す。
  3. トランクルームを探す。
荷物のいくらかを処分する
あなたの生活に、毎月今より余分のお金を支払う余裕がないのなら、選択肢はこれしかないという事になります。
あなたは、思い出に対していくら払えますか?
今回の場合は1畳あたり1万円なので、計算は簡単ですね。
2万円払えるのなら2畳分の荷物を、3万円払えるのなら3畳分の荷物をとっておく事ができます。
ただし、2畳分の荷物をとっておくということは、残る生活空間は4畳、3畳分とっておくなら生活空間は3畳というように、荷物の量と生活空間には相関関係がありますので、バランスで考える事をお忘れなく。
あとは、思い出の品に優先順位をつけて、優先度の低い物から処分していく事になります。
あなたの生活にある程度の余裕があるのなら、そして荷物を捨てたくないのなら、残る2つの選択肢のうちどちらかを採用する事になります。
どちらを採用するのかは、余裕の程度、トランクルームが近くにあるか、思い出の品を近くに置いておきたいのか、それともとっておけさえすればいいのかで決まってくるでしょう。
これについても、オブジェクト指向な考え方で判断する事もできるでしょうが、ここでは割愛します。
引っ越し先を探す
より余裕があるか、トランクルームが近くにないか、または思い出の品をより近くにおいておきたいのなら、こちらを選択する事になります。
そこで、単に広い部屋を探すというのでもいいのですが、さらに考えるなら、1畳あたりの家賃がより安いところが探せればベターですね。
そうなれば、荷物に対して払うお金は、より安く済むという事になります。
わざわざ荷物をとっておく事に対して、より寛容になれるというものです。
※ ここで、面白い要素がありますね。
家賃を、一畳あたりの単価で見たことありました?
私は、あまりないです。
何に対して月いくら払うのか?というのが、一畳あたりの単価から計算できるんですね。
トランクルームを探す
最後の選択肢です。
近くに適当なトランクルームがあって、引っ越すほどの余裕はない。
また、荷物はとっておけさえすればいいのであって、そんなに身近においておく必要はない。
というのであれば、これです。
ここでも、引っ越し先と同じ理屈で、1畳あたりの家賃がポイントですね。
トランクルームの場合、たいてい1畳いくらとかいう値段設定になっているので、これが1万円をきっていれば借りる価値はあるわけです。

オススメ

 開発者の方向けのオブジェクト指向入門には、オブジェクト脳のつくり方がオススメです。
オブジェクト指向でソフトウェアを考えるためのコツがわかります。
基本的なことをひととおり、比較的楽に理解することができるでしょう。

0 件のコメント:

コメントを投稿

Related Posts Plugin for WordPress, Blogger...