Java接口和类定义

时间:2015-11-13 08:20:53

标签: java interface

我正在尝试理解我收到的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) {
        ....
    }
}

1 个答案:

答案 0 :(得分:1)

这是一种经典的方法,理论上应该确保代码易于扩展和松散耦合。如果您查看旧的Java书籍,可以在许多代码体系结构示例中找到它。

然而,这种方法干净,没有真正有利可图,你绝对不应该自己做,除非它是你喜欢的风格(我不认为,因为你试图理解它)。

软件工程已经发展了很多,现代的方法是专注于可理解的代码,以及干净。以上述方式编写将导致调试非常困难,并且新程序员需要花费大量时间来获取项目。

另一方面,这只是一个架构决策,所以它不是直接“坏”。它只是过时了: - )

至于问题#2 - 是的,这似乎是合理的,虽然我不能保证它会起作用,但是你没有提供足够的代码或上下文。