假设我正在制作一个名为 Government 的课程。政府有官员、部长、部门等成员。我为每个成员创建一个界面,任何特定的政府都可以根据自己的喜好定义它们。
政府类中的主要方法被调用Serve(Request req)
。假设查询率非常大(每秒 1000+ 次查询)。
要创建政府,我可以:
1)使用 Java 泛型编写Government<Class Minister, Class Officer, ...>
,任何特定的政府实现都需要在 java 代码中创建自己的政府对象,并main()
具有可部署的 jar。
2) 有一个配置文件,指定官员、部长等的类名,每当Serve()
调用时,它使用Class.forName()
和Class.newInstance()
创建类的对象。任何新政府只需要为其成员编写类和配置文件。main()
所有政府都有一个单一的。
从纯粹的性能角度来看 - 哪个更好,为什么?我主要担心的是:
a) 是否forName()
每次都执行昂贵的搜索?假设一个非常大的类域。
b) 我们是否错过了可能在案例 1 中执行的编译器优化,但在动态类上没有在案例 2 中执行?