2009/04/18

[OOP]オブジェクト指向は役割分担指向だ

私の考えるオブジェクト指向。
 

もの?

オブジェクト指向は「もの指向」と訳される。
その実「役割分担指向」だ。
役割を愚直にこなすものを作るのだ。
役割の詳細は知らなくて良い。
その後どんな作用や影響が起こるのか、それは知らなくて良い。
シンプルな役割が良い。
複雑なことはできなくて良い。
与えらた一つの役割を愚直にこなす方が良い。

ボタン

「ボタンを押す」という役割を与えられたものはボタンが来たらボタンを押す。
それがどんなボタンかは関係ない。
ボタンが来たら押す。
それだけだ。
ボタンが押されたことによって音が出るのか、衛星が打ちあがるのか、電気椅子が実行されるのか、そんなことを知る必要はない。
ボタンが来たら押す。
それが「ボタンを押す」という役割を与えられたものの使命。
 

飾り

「飾り付ける」という役割。
飾りが来たら飾り付ける。
それがどんな飾りか気にする必要はない。
飾りが来たら飾り付ける。
飾りをどこにどのように飾りつけるかは気にしなくてよい。
飾り自身が知っているからだ。
こちらに来る前に「別の役割」によって決められているからだ。
飾りが来たら飾り付ける。
それが「飾り付ける」ものの役割。

忠実たれ

自分の役割に忠実でなければならない。
他の役割に手を貸してはならない。
首を突っ込んではいけない。
ボタンの位置を変えるな。
ただ押せ。
スイッチは触るな。
ボタンを押せ。
飾りのセンスに気を取られるな。
飾れ。
飾りつけすぎではないか?
気にするな。
 

つまり

こうやって具体性を取り除いた領域で役割を組み合わせ積み上げていく。
具体的なことは後で与えてあげればいいのだ。
具体的なことはその時その場で決まる。
事前に知っておく必要はない。
 

まとめ

デザパタ読め。
 

静的で型付けの強いクラスベースのOOPについて書いたつもり。
CLOSとかプロトタイプベースは知らん。(知りたいが)
 


 

 



増補改訂版Java言語で学ぶデザインパターン入門



結城 浩
ソフトバンククリエイティブ
売り上げランキング: 4029


おすすめ度の平均: 4.5
5 好評のため改訂増補しています。
5 初級者から中級者へ
2 実践的ではないです
5 とてもわかりやすかった。
5 Javaの文法を理解した人へ。




オブジェクト指向における再利用のためのデザインパターン



エリック ガンマ ラルフ ジョンソン リチャード ヘルム ジョン ブリシディース
ソフトバンククリエイティブ
売り上げランキング: 29688


おすすめ度の平均: 4.5
4 デザインパターン教へようこそ
5 設計の再利用
5 設計をする人は一度見る価値あります
5 オブジェクト指向言語を用いた開発者に必携の本
5 原書は未だにトップランク


 

1 件のコメント:

  1. 「オブジェクト」に関しては、大賛成。
    これだけバシッと言った方がオブジェクトっぽいです。

    ただ、「オブジェクト指向」と言うならば、オブジェクト同士の関連(やり取り)という視点が必要では?

    というわけで、続編をリクエスト。

    返信削除