我在理解DAO设计模式Here时遇到了一些问题。
我的困惑在于两点:
entity beans
被称为......仅适用于网络技术?我相信我使用上面的设计模式和纯java程序,我使用DTO和DAO使用泛型来表示几种类型(联系人,事件,工作,学术)。每个都有自己的超类BASEDAO
实现,它管理数据库及其连接的所有sql语句。 现在,我不确定我的DTO代表联系人,事件,工作是否会被归类为ENTITY BEAN。我的DTO是否属于上述网站所说的业务部分?
答案 0 :(得分:1)
现在,Entity Beans是一个Java EE概念,你可以在没有它们的情况下构建DAO,而且很多都可以。 (例如Hibernate)
要回答第二个问题,在编写自定义代码以管理数据库连接,查询等时,会发生紧密耦合,而不使用DAO。如果您使用DAO并使用数据源,那么当您更改数据存储和/或源时,所有业务逻辑都是安全的,这可以通过配置脚本中的最小更改来处理,而不是在没有DAO的情况下重新编写新代码
答案 1 :(得分:1)
通常,每个软件都由数据和对该数据执行的一些操作组成。在过程编程中,操作表示为将数据作为输入的过程。这里的问题在于,如果在不同的过程中使用相同的数据集,那么每次更改该集以适应新的过程时,您都可以轻松地破坏另一个过程。其他地方的程序。这是紧耦合。另一方面,使用面向对象编程,数据和操作比影响它生活在同一个对象上。这意味着你不需要传递和参数到方法,它实际上知道在对象内找到它的位置。这样,如果您要更改方法,则只会更改方法所在对象中的数据。在任何一种情况下,业务逻辑都是使用/对数据进行的操作。 pradeep意味着将数据存储技术(即sql)更改为mysql不应该破坏其上运行的操作(业务逻辑)。您可以实现这一点,创建一个独立于数据存储技术的数据表示,如DTO(尽管我宁愿使用隐藏其正在处理的数据的完整对象)