在试图深入了解一些设计模式时,我遇到了一个让我感到困惑的示例——希望它很容易解释,但我只是想念它。
我的问题是网关适合“哪里”?作为一个附加的数据访问点,这似乎是多余的。
示例代码具有三个类 -
person
- 每个对象属性都有 getter 和 setter 方法personDAO
- 它有数据调用来执行 CRUD。personGateway
- 有getAll
和getCount
- 也有数据调用...???
我完全可以对数据进行 DAO 调用,并且 DAO 使用“person”类创建一个要传回的对象 - 但为什么不将getAll
andgetCount
放在 DAO 中?
“网关”在这个游戏中扮演什么逻辑位置?
---阅读回复后添加---
好的 - 我在搜索时显然错过了这一点 - 它确实“帮助”澄清 - 需要对模式(DAO x Gateway)进行一些澄清- 但是,它似乎非常以 Java 为中心,它实际上跳过了我希望的区别 -
我猜答案是 DAO 返回一个“对象”,而“对象”是一个单一的实体……而不是一个集合。如果你正在重新调整一个集合(如果你“应该”是有争议的)那么你会使用网关......但在任何情况下你都不应该用集合混淆 DAO......