private、 protectedメソッドについて
投稿日: Mar 21, 2009 8:33:49 AM
SmallTalk R4.1は、優れたアクセス制御機能を実装しています。privateとprotectedメソッドは、その最も基本的なものです。
書き方はたいそう簡単です。単にアクセス制御を行いたいメソッド内で、self privateやself protectedを自身に送るだけです。
methodA
self private.
...
methodB
self protected.
...
SmallTalkのすごいところは、メソッドの途中でもアクセス制御をアクティベートできるということです。つまり一見パブリックに見せかけておき、メソッドの後半でいきなりprivateにして、相手の気をくじくこともできます。Duck Typingをいいことに、やみくもにメッセージ送信を行ってくる輩に対して、おとり捜査を行うときなどに有効です。
また、ある条件に合ったときにはprivate、そうでないときはprotectedなどにすることもできます。どのような応用例があるかは、よくわかりませんが、皆さんならきっと何かに活用してくれるでしょう。