我正在尝试理解我收到的Java代码(我是C#程序员)
public interface BaseDA {
...
}
public class BaseDAImp extends HibernateDaoSupport implements BaseDA {
...
}
public interface TxnDA extends BaseDA {
public Txn getTxn(long id);
}
public class TxnDAImp extends BaseDAImp implements TxnDA {
public Txn getTxn(long id) {
....
}
}
在另一个课程中,它以这种方式使用
protected void ShowTxn(long int) {
TxnDA txnda = (TxnDA) appContext.getBean("txnDA");
txnda.getTxn(id)
}
所有类extend
是基类,implements
是一个接口。这几乎是针对java代码中的每个类完成的。
问题 1 - 有人可以向我解释一下这段代码吗?我已经知道当我们想要耦合软件,插件,隐藏实现细节时,我们使用接口(在C#中)。
2 - 由于以上条件都不适用于这个java库,修改下面的代码是否安全?
public class BaseDA extends HibernateDaoSupport {
...
}
public class TxnDA extends BaseDA {
public Txn getTxn(long id) {
....
}
}
答案 0 :(得分:1)
这是一种经典的方法,理论上应该确保代码易于扩展和松散耦合。如果您查看旧的Java书籍,可以在许多代码体系结构示例中找到它。
然而,这种方法不干净,没有真正有利可图,你绝对不应该自己做,除非它是你喜欢的风格(我不认为,因为你试图理解它)。
软件工程已经发展了很多,现代的方法是专注于可理解的代码,以及干净。以上述方式编写将导致调试非常困难,并且新程序员需要花费大量时间来获取项目。
另一方面,这只是一个架构决策,所以它不是直接“坏”。它只是过时了: - )
至于问题#2 - 是的,这似乎是合理的,虽然我不能保证它会起作用,但是你没有提供足够的代码或上下文。