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などにすることもできます。どのような応用例があるかは、よくわかりませんが、皆さんならきっと何かに活用してくれるでしょう。