【问题标题】:DTO and DAO concepts and MVC [closed]DTO 和 DAO 概念和 MVC [关闭]
【发布时间】:2012-12-31 05:16:53
【问题描述】:

1) 为什么我们使用DTODAO,我们应该在什么时候使用它们。我正在开发一个GUI Java 软件,用于插入、编辑、删除数据。但我很难区分DTO/DAOModelViewController(MVC)结构?它们是否相似,通过JavaGUI与数据库交互时更好使用。

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

Here 就是我要说的

在一个类中拥有视图和控制器是不好的做法?

【问题讨论】:

  • @RomanC 有一个包含事件(eventId、name、date.etc)的数据库表,所以 DTO 和 MVC,相同还是不同?
  • 在数据库中,您没有 DTO,而是数据库对象。
  • @RomanC 在 Java 类中抱歉,使用 DTO/DAO 结构还是应该使用 MVC?有什么区别
  • 阅读thisthat查看区别
  • 你在第二次定义中读到数据库了吗?

标签: java swing model-view-controller user-interface javabeans


【解决方案1】:

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 模式,最好有一个单独的控制器,其中包含框架的业务逻辑在一个单独的类中,并将消息从事件处理程序发送到此控制器。
这会将您的业务逻辑与视图分开。

【讨论】:

  • 可能我误解了这个问题。
  • 我不确定您所说的“独立控制器”是什么意思。根据我的阅读,MVC 中的控制器应该尽可能瘦,并且您的业务逻辑应该封装在您的模型中。
  • 使用 DTO 接口对象模型是一种糟糕的做法。 void save(PersonDTO person) 是纯粹的癌症。
  • 当我们有像 POJO 这样的 Class 对象时,为什么还需要 DTO?不是都一样吗?
  • @Bhargav DTO 用于返回多个实体 (POJO) 的组合结果或来自一个实体的有限资源。
猜你喜欢
  • 1970-01-01
  • 2011-06-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-06
  • 1970-01-01
  • 1970-01-01
  • 2014-08-21
相关资源
最近更新 更多