私の考えるオブジェクト指向。
もの?
オブジェクト指向は「もの指向」と訳される。 その実「役割分担指向」だ。 役割を愚直にこなすものを作るのだ。 役割の詳細は知らなくて良い。 その後どんな作用や影響が起こるのか、それは知らなくて良い。
シンプルな役割が良い。 複雑なことはできなくて良い。 与えらた一つの役割を愚直にこなす方が良い。
ボタン
「ボタンを押す」という役割を与えられたものはボタンが来たらボタンを押す。 それがどんなボタンかは関係ない。 ボタンが来たら押す。 それだけだ。
ボタンが押されたことによって音が出るのか、衛星が打ちあがるのか、電気椅子が実行されるのか、そんなことを知る必要はない。 ボタンが来たら押す。 それが「ボタンを押す」という役割を与えられたものの使命。
飾り
「飾り付ける」という役割。 飾りが来たら飾り付ける。 それがどんな飾りか気にする必要はない。 飾りが来たら飾り付ける。
飾りをどこにどのように飾りつけるかは気にしなくてよい。 飾り自身が知っているからだ。 こちらに来る前に「別の役割」によって決められているからだ。 飾りが来たら飾り付ける。 それが「飾り付ける」ものの役割。
忠実たれ
自分の役割に忠実でなければならない。 他の役割に手を貸してはならない。 首を突っ込んではいけない。
ボタンの位置を変えるな。 ただ押せ。
スイッチは触るな。 ボタンを押せ。
飾りのセンスに気を取られるな。 飾れ。
飾りつけすぎではないか? 気にするな。
つまり
こうやって具体性を取り除いた領域で役割を組み合わせ積み上げていく。 具体的なことは後で与えてあげればいいのだ。 具体的なことはその時その場で決まる。 事前に知っておく必要はない。
まとめ
デザパタ読め。
注
静的で型付けの強いクラスベースのOOPについて書いたつもり。 CLOSとかプロトタイプベースは知らん。(知りたいが)
結城 浩 ソフトバンククリエイティブ 売り上げランキング: 4029 おすすめ度の平均: 好評のため改訂増補しています。初級者から中級者へ 実践的ではないです とてもわかりやすかった。 Javaの文法を理解した人へ。 |
エリック ガンマ ラルフ ジョンソン リチャード ヘルム ジョン ブリシディース ソフトバンククリエイティブ 売り上げランキング: 29688 おすすめ度の平均: デザインパターン教へようこそ設計の再利用 設計をする人は一度見る価値あります オブジェクト指向言語を用いた開発者に必携の本 原書は未だにトップランク |
「オブジェクト」に関しては、大賛成。
返信削除これだけバシッと言った方がオブジェクトっぽいです。
ただ、「オブジェクト指向」と言うならば、オブジェクト同士の関連(やり取り)という視点が必要では?
というわけで、続編をリクエスト。