- 749 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 18:19:33 ]
- >>748
いや、一つの識別子をソース中に書くのは1回で、あとは参照に置き換えるってのは、 コードのメンテナンス性を保つ上で、ものすごく基本的なことだと思うが。 getXXX, setXXXというメソッド名は、XXXというプロパティ名に従属する識別子なんだから、 ソース中の1箇所の変更で、全てが整合性を保った状態で変更されるのが理想。 C#では、それを文法で強制している。javaでは、整合性の保持はプログラマ任せ。 プロパティ名変更する度に、getXXX、setXXX、firePropertyChangeの引数、全て変更って、 バカバカし過ぎる。せめて、IDEに面倒みてもらいたい。 YYYListener、addYYYListener、removeYYYListenerも、相互に関連する名前なんだから、 ソース1箇所の変更で全てが修正される方が望ましい。 これも、C#ではeventで実現できるが、javaはプログラマ任せ。 javaは保たれるべき一貫性の保持を、文法で強制するんじゃなくて、守るべき ルールとして与えてるだけなんで、そのルールが守られることのチェックを、アノテーションでできてほしい。 addYYYListenerにしても、 @AddListenerMethodFor(YYYListener.class) void addYYYListener(YYYListener listener) {} みたいにして、名前の整合性がなかったら、コンパイラで検出できるようにすべきだと思う。 IDEではYYYListenerをリファクタリングでリネームしたら、addもremoveもリネームできて、ほしい。 javaは、識別子の命名ルール関係で、コンパイラでは検出できないけど、 守られていないと正しく動作しない決め事が結構ある。 そのあたり、アノテーションでバンバン検出できるようになると良いんだけど。
|

|