我正在阅读 J。 Bloch
的 effective Java 他说了以下内容:
Once an interface is released and widely implemented, it is almost impossible to change.
那么,现在考虑 DAO-pattern 的简单接口(interface):
public interface UserDao{
public User getById(int id);
public Collection<User> getAll();
public boolean delete(int userId);
public boolean update(User u);
}
这就是我的 Dao
界面首次发布时的样子。到那时,我不得不向用户添加一些功能,以便通过其 registration_date
或类似的东西聚合所有用户。因此,我需要在 DAO
接口(interface)中添加相应的方法声明并实现它。
此外,目前我无法想象 DAO
接口(interface)可能或多或少是稳定的,因为添加一些新的 DAO
操作经常发生。
也许这是我的 DAO 设计灾难,或者接口(interface)几乎不适合 DAO
?
最佳答案
我认为 J. Bloch 的那句话是针对公共(public)接口(interface)的,而不是针对您的 DAO 案例。
想想你创建一个公共(public) API 让任何程序员使用你的平台。如果您要更改该界面,则需要程序员调整他的代码,因此这会令人沮丧。
但是,如果您是为内部应用程序创建界面,则无需承担该风险,值得根据需要改进界面。
显然,您必须考虑有多少类实现了您的接口(interface)并承担修改成本。
关于java - 了解 DAO 模式和接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33364306/