2011-07-29 11 views
2

私はEclipse RCPアプリケーションを開発しています。デザイナー(?)がUI BuilderをWindows Builder PROで作成するようになったので、デザイナーが作成するすべてのビューのビジネスロジックを作成する必要があります。Reflectionの問題点は何ですか?

私の最初のアイデアは、各ビューのControllerクラスを作成し、そこからアプリケーションロジックを処理することでした。Reflectionの助けを借りて、デザイナーが作成するウィジェットの種類はわかりません。私はこれが喜んで動いていると思っていましたが、私たちのリーダーは私たちにはないと言いました反射を使用します。

私は私の質問があるので、私にとっては何の意味も持たなかった非常に簡単な説明を聞いた:

非保守性/悪いと考えリフレクションを使用してなぜ?

答えて

6

Javaは、長所と短所を持つ強く型付けされた言語です。すべての短所について、コンパイル時のチェックを非常に良くしてくれます。コンパイル時に見つかったバグやエラーは、見つけて修正するのが最も安いです。

リフレクションは実行時のものです。あなたはリフレクションを使用してコンパイラに何かをチェックさせることはできません。したがって、リフレクションを使用すると、Javaの恩恵を多く失います。具体的には、コンパイルして実行時に展開するコードを記述できます。反射型コードのために使われることがある用語は、「文字列型」です。実際のメソッドを参照するのではなく、メソッド(文字列)の名前を使用しています。

もちろん、リフレクションは使用されますが、使用するたびにJavaの強みを邪魔していることに注意してください。あなたのユニットテストで十分なケースがカバーされていれば、あなたの使用が安全であるという自信を与えるために、実際にはあなたのケースで広範囲に使用することができます。実際にそれを使用したコードがコードのかなり小さな "ユーティリティ"ベースであったなら、私はその使用を認可するでしょう。

関連する問題