OOPのmessage
ObjectとObject同士のやりとり
あるObjectが、別のObjectのmethodを呼ぶことを通信に見立ててこう呼ぶ界隈がある
Object自体を一つのコンピュータと捉えて、メッセージ通信する感じ
https://gyazo.com/a0fcd8160113d0813739e076e2923590
methodを呼ぶことで、インスタンスに対してrequestを送り、
インスタンスはresponseとして返り値を返す
このやり取りを「message」と呼んでいる
RESTとのアナロジーで考えればわかりやすい
get系のmethodならPOSTで、set系のmethodならGET, UPDATEみがある
雑なアナロジーだがmrsekut.icon
自分のobjectに送るものを内部メッセージ、他のobjectへ送るものを外部メッセージと言ったりする
外部メッセージとカプセル化が近しい概念だということも想像できてきた だから「メッセージ」だった
その後、同期的なモデルに切り替えたが、用語としては「メッセージ」を使い続けているので誤解生じがち、とのことらしい
関数と(外部)メッセージは、命令と依頼の違い
関数は、命令をする
メッセージはobjectに対して処理を依頼する
言っていることはわかるが、これを知ったからといって何の差が出るんだ?
OOのノリがわかるのか。
class設計に多少貢献はしそう
Elixirにも「メッセージ」という概念が出てきた記憶がある Elixir/Erlangが最もOOである
参考
メッセージについて