繁体   English   中英

接口到对象列表的设计模式?

[英]Interface to list of objects design pattern?

我目前正在从事一个涉及员工对象列表的项目。 我通过使用hibernate从Employees数据库中读取生成此列表。

现在我的问题是,当前系统只是传递一个雇员对象列表,但是我不确定这是最好的方法。

我现在要做的是创建一个EmployeeManager对象,该对象负责创建,删除,搜索和更新员工列表。

这是最好的方法吗? 或者只是另一个不需要的抽象,可以通过列表吗?

是的,您正在做的是一种存储库模式。

使用存储库模式可实现以下一个或多个目标:

  • 您希望最大化可以通过自动化进行测试的代码量,并隔离数据层以支持单元测试。
  • 您可以从许多位置访问数据源,并希望应用集中管理的,一致的访问规则和逻辑。
  • 您想要实现并集中数据源的缓存策略。
  • 您想通过将业务逻辑与数据或服务访问逻辑分开来提高代码的可维护性和可读性。
  • 您想要使用强类型的业务实体,以便可以在编译时而不是在运行时识别问题。
  • 您想要将行为与相关数据相关联。 例如,您要计算字段或在实体中的数据元素之间强制执行复杂的关系或业务规则。
  • 您想应用域模型来简化复杂的业务逻辑。 请同时考虑UnitOfWork模式和存储库模式。

来自: https : //docs.microsoft.com/zh-cn/previous-versions/msp-np/ff649690(v=pandp.10)

答案是:这取决于。

但通常,创建另一个抽象层并将其用于进一步的类/实现等中是一个好习惯。

为什么? 好吧,假设您出于某种原因需要使用另一种技术来更改数据库层; 仅需修改所提到的图层即可节省大量时间。 但是,您也不应滥用过多的层次。 这实际上取决于某些情况,因此您应该为自己选择最佳方法。

“我应该如何编写代码”这一领域有很多资源。

  • RC Martin-干净代码
  • RC Martin –敏捷软件开发。 原则模式与实践
  • E. Gamma,R。Helm,R。Johnson,J。Vlissides-设计模式:可重用的面向对象软件的元素

我建议您阅读并发表自己的看法。 在某些情况下可能需要妥协。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM