我正在开发Eclipse RCP应用程序。我被告知UI部分将由设计器(?)与windows Builder PRO创建,所以我必须为我们的设计器创建的每个视图创建业务逻辑。
我的第一个想法是为每个视图创建一个Controller类,并在反射的帮助下处理应用程序逻辑(我不知道设计器将创建什么样的小部件)。我认为这将是动态的,因此高兴,但我们的领导告诉我,我们不会使用反射。
我听到一个很短的解释,对我来说没有任何意义,所以我的问题是:
为什么使用反射被认为是坏的/不可维护的?
Java是一种强类型语言,有优点也有缺点。尽管有缺点,但它提供了非常好的编译时检查。在编译时发现的bug/错误是查找和修复成本最低的。
反射是运行时的事情。您不能让编译器检查使用反射所做的任何事情,因此,如果您使用反射,您将失去java的许多优点。具体来说,您可以编写编译但在运行时爆炸的代码。有时用于反射类型代码的术语是"字符串类型"-您使用方法的名称(字符串)而不是引用实际的方法。
当然要使用反射,但是无论何时使用它,都要记住你是在破坏java的强度。在您的案例中广泛使用它实际上可能是可以的,只要您的单元测试涵盖了足够的案例,以使您确信您对它的使用是安全的。如果实际使用它的代码是一个相当小的"实用程序"基础代码,我会批准使用它。