「頼むのよ。触ってはダメ」

覚書。
OOPのメッセージ送信を表した言葉。Adele Goldbergさんの言葉らしい。。


関数呼び出しは処理の断片をつぎはぎのようにジャンプしますが、OOPのメッセージ
送信ではオブジェクトに対して処理を要求するという方法となります。


要求を受け取ったオブジェクト(レシーバ)は自分で考えて、適切なレスポンスを返す
ようにすることでカプセル化ポリモーフィズムが可能となります。


処理を矢印で考えると、関数呼び出しでは矢印とデータが離れたイメージで

    [データ]

    ====>  ====>  ====>

メッセージ送信は矢印の先にデータがあるイメージですね。

    ====>[データ(オブジェクト)]<====

OOPを受け入れられない人にとっては「触ってはダメ」という感覚が難しいようですね。
多くは剥き出しのデータを誰でも触れるコードになってたりします。


データを剥き出しにしておくのではなく、「頼む」ためのアクセスメソッドを作り、
このメソッドを介してデータを扱うようにする。そしてデータとアクセスメソッドを
一まとめにして「オブジェクト」にしていく。。。


「触ってはダメ」「頼む」という感覚が分かってくると、今まで書いてたコードが、
「なんで関数から直接データ触ってんねん!データに聞けばええやん!」
なんて思えてきます。こうなればしめたもの(^^;