我的java程序中有静态块,并且需要将相同的代码放在几个java文件中。是否存在避免复制的最佳实践?将这段代码粘贴在多个文件中?
static Reader reader;
static SqlMapClient smc;
static {
try {
if(reader==null){
reader = Resources.getResourceAsReader("sqlmapconfig.xml");
smc = SqlMapClientBuilder.buildSqlMapClient(reader);
}
} catch (IOException e) {
e.printStackTrace();
}
}
答案 0 :(得分:1)
您可以创建一个类,在其中编写所有静态方法。所以你对每个静态方法都有一个中心位置。 例如:
public class AllMyMethod {
public static myMethod() {
try {
if(reader==null){
reader = Resources.getResourceAsReader("sqlmapconfig.xml");
smc = SqlMapClientBuilder.buildSqlMapClient(reader);
}
} catch (IOException e) {
e.printStackTrace();
}
}
public static myMethod2() {
}
.......
}
然后你做:AllMyMethod.myMethod();
例如,您可以使用static
和final
变量执行相同的操作...
答案 1 :(得分:1)
如果您真的想要“最佳实践”,那就是使用IOC容器为您注入这些东西。 IOC容器可以读取配置文件并为您创建SqlMapClient并将其注入您的DAO。
曾经有一个名为Ibatis-DAO的项目处理过这种事情,当Clinton Begin弃用它时,他特别建议人们使用Spring。