我正在尝试理解收到的 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)
}
所有类都扩展
一个基类并实现
一个接口(interface)。这几乎是为 Java 代码中的每个类完成的。
问题 1 - 有人可以向我解释这段代码吗?我已经知道,当我们可能想要耦合软件、插件、隐藏实现细节时,我们会使用接口(interface)(在 C# 中)。
2 - 由于此 java 库的上述条件均不成立,因此修改如下代码是否安全?
public class BaseDA extends HibernateDaoSupport {
...
}
public class TxnDA extends BaseDA {
public Txn getTxn(long id) {
....
}
}
最佳答案
这是一种经典的方法,理论上应该确保代码易于扩展和松散耦合。如果您查看旧的 Java 书籍,您会在许多代码架构示例中找到这一点。
但是,这种方法不干净,不是真正有利可图,你绝对不应该自己做,除非它是你喜欢的风格(这不是我假设的,因为你试图理解它)。
软件工程已经取得了长足的进步,现代的方法是专注于代码的可理解性和整洁性。以上述方式编写将导致调试非常困难,新程序员需要大量时间才能掌握项目。
另一方面,这只是一个架构决策,因此并不是直接的“坏”。它已经过时了:-)
至于问题 #2 - 是的,这似乎是合理的,虽然我不能保证它会起作用,但您没有提供足够的代码或上下文。
关于Java接口(interface)和类定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33688387/