Finalクラスについて
投稿日: Mar 15, 2009 1:13:11 PM
SmallTalk R 4.1では、任意のクラスをFinalにすることが可能です。
Foo beFinal.
で、FooクラスがFinalとなります。
SmallTalk allFinalClasses.
ですべてのFinalクラスを得ることもできます。
一度Final指定をしてしまうと、Fooクラスを継承することができなくなります。また、Fooクラスのあらゆる変更が不可能になります。
継承関係の変更、クラス名の変更、メソッドの追加/削除、インスタンス・クラス・クラスインスタンス変数の追加/削除はおろか、クラスの削除すら行えなくなります。
再利用性がなくなる、厳しすぎるといった声には耳を傾けません。セキュリティに対する認識が甘すぎます。SmallTalk R4.1は、コードインジェクションの脅威に立ち向かうためのシンプルで強力なソリューションを提供します。
ちなみにFinal指定をしてしまうと、二度と解除できませんので、操作には細心の注意を払ってください。くれぐれもお気をつけて!