在尝试理解一些设计模式时,我遇到了一个让我困惑的示例 - 希望这很容易解释,只是我错过了什么。
我的问题是,"网关"在这里的作用是什么?它似乎是多余的,因为它是一个额外的数据访问点。
示例代码有三个类 -
person
- 其中有每个对象属性的getter和setter方法personDAO
- 它有要执行CRUD的数据调用。personGateway
- 它有getAll
和getCount
- 这也是数据调用...???
我完全明白使用DAO调用数据,并且DAO使用“person”类创建对象以传回 - 但为什么不将getAll
和getCount
放在DAO中呢?
逻辑上,“网关”在这个游戏中扮演什么角色?
--- 阅读回答后添加 ---
好的 - 我显然在搜索时错过了这个 - 它确实“有助于”澄清 - Need some clarification with Patterns (DAO x Gateway) - 但它似乎非常以Java为中心,实际上跳过了我希望看到的区别 -
我想答案是DAO返回一个“对象”,而一个“对象”是单个实体...不是集合。如果您正在返回集合(这是值得商榷的),则应该使用网关...但在任何情况下都不应该混淆DAO和集合...