实体Bean和数据访问对象模式

时间:2013-04-03 17:35:45

标签: java design-patterns javabeans dao dto

我在理解DAO设计模式Here时遇到了一些问题。

我的困惑在于两点:

  1. 在网站的“问题”部分,entity beans被称为......仅适用于网络技术?我相信我使用上面的设计模式和纯java程序,我使用DTO和DAO使用泛型来表示几种类型(联系人,事件,工作,学术)。每个都有自己的超类BASEDAO实现,它管理数据库及其连接的所有sql语句。
  2. 现在,我不确定我的DTO代表联系人,事件,工作是否会被归类为ENTITY BEAN。我的DTO是否属于上述网站所说的业务部分?

    1. 在网站的问题部分的末尾,它提到了组件与数据源实现之间的耦合*。我不确定这意味着什么。有没有人能够用
    2. 详细说明或向我展示一个使用Java代码的简单示例

2 个答案:

答案 0 :(得分:1)

现在,Entity Beans是一个Java EE概念,你可以在没有它们的情况下构建DAO,而且很多都可以。 (例如Hibernate)

要回答第二个问题,在编写自定义代码以管理数据库连接,查询等时,会发生紧密耦合,而不使用DAO。如果您使用DAO并使用数据源,那么当您更改数据存储和/或源时,所有业务逻辑都是安全的,这可以通过配置脚本中的最小更改来处理,而不是在没有DAO的情况下重新编写新代码

答案 1 :(得分:1)

通常,每个软件都由数据和对该数据执行的一些操作组成。在过程编程中,操作表示为将数据作为输入的过程。这里的问题在于,如果在不同的过程中使用相同的数据集,那么每次更改该集以适应新的过程时,您都可以轻松地破坏另一个过程。其他地方的程序。这是紧耦合。另一方面,使用面向对象编程,数据和操作比影响它生活在同一个对象上。这意味着你不需要传递和参数到方法,它实际上知道在对象内找到它的位置。这样,如果您要更改方法,则只会更改方法所在对象中的数据。在任何一种情况下,业务逻辑都是使用/对数据进行的操作。 pradeep意味着将数据存储技术(即sql)更改为mysql不应该破坏其上运行的操作(业务逻辑)。您可以实现这一点,创建一个独立于数据存储技术的数据表示,如DTO(尽管我宁愿使用隐藏其正在处理的数据的完整对象)