163

1) 我们为什么使用DTOand DAO,以及我们应该在什么时候使用它们。我正在开发一个GUI用于插入、编辑、删除数据的 Java 软件。但是我正在努力区分DTO/DAOand Model, View, Controller(MVC) Structure?它们是否相似,在通过 Java 与数据库交互时更好用GUI

2)我真的很好奇的一件事是在一个班级view上是否是一种好习惯。Controller如果我们考虑一下Netbeans,您可以创建GUI框架类并将组件添加JButton到框架上,双击按钮将带您到actionListener方法(控制器),该方法似乎在框架中,数据将显示给用户(视图) . 所以他们在同一个班。那么这是否完全违背了这个概念?

就是我所说的

在一个类中拥有视图和控制器的坏习惯?

4

1 回答 1

325

DTOData Transfer Object的缩写,因此它用于在应用程序的类和模块之间传输数据。

  • DTO应该只包含数据、getter、setter 和构造函数的私有字段。
  • DTO不建议在此类类中添加业务逻辑方法,但添加一些 util 方法是可以的。

DAOData Access Object的缩写,因此它应该封装用于在数据存储(数据库、文件系统等)中检索、保存和更新数据的逻辑。

以下是 DAO 和 DTO 接口的示例:

interface PersonDTO {
    String getName();
    void setName(String name);
    //.....
}

interface PersonDAO {
    PersonDTO findById(long id);
    void save(PersonDTO person);
    //.....
}

MVC是一个更广泛的模式。DTO/DAO 将成为 MVC 模式中的模型。
它告诉您如何组织整个应用程序,而不仅仅是负责数据检索的部分。

至于第二个问题,如果您有一个小型应用程序,那完全可以,但是,如果您想遵循 MVC 模式,最好有一个单独的控制器,它将在单独的类中包含框架的业务逻辑并从事件处理程序向该控制器发送消息。
这会将您的业务逻辑与视图分开。

于 2013-01-16T19:40:44.490 回答