Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 对象列表设计模式的接口?_Java - Fatal编程技术网

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

Java 对象列表设计模式的接口?,java,Java,我目前正在从事一个项目,该项目涉及员工对象列表。我通过使用hibernate从员工数据库中读取数据来生成此列表 现在我的问题是,当前系统只是传递一个employee对象列表,但我不确定这是最好的方法 我现在做的是创建一个EmployeeManager对象,负责创建、删除、搜索和更新员工列表 这是最好的方式吗?或者只是另一个不必要的抽象,传递一个列表就可以了?是的,您正在做的是一种存储库模式 使用存储库模式可实现以下一个或多个目标: 您希望最大限度地利用自动化测试代码,并隔离数据层以支持单元测试

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

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

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


这是最好的方式吗?或者只是另一个不必要的抽象,传递一个列表就可以了?

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

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

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

发件人:

答案是:视情况而定

但通常创建另一个抽象层并在进一步的类/实现中使用它是一个好的实践

为什么??好吧,想象一下,不管出于什么原因,您需要用另一种技术更改数据库层;这将节省您大量的时间,只需修改所提到的图层。 但是,你也不应该滥用和做太多的层。这实际上取决于某些情况,你应该为自己选择最好的方法

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

  • R.C.Martin-清洁代码
  • R.C.Martin–敏捷软件开发。原则、模式和做法
  • E.伽马,R.赫尔姆,R.约翰逊,J。 设计模式:可重用面向对象的元素 软件

我建议你读一些,并提出自己的观点。有些情况可能需要妥协

你的描述太模糊,我们无法给你提供建议。使用您认为最具可读性和可维护性的工具。