Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.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_Service_Architecture - Fatal编程技术网

Java 服务层设计

Java 服务层设计,java,service,architecture,Java,Service,Architecture,我正在做一个pet项目,它基本上是三层应用程序(UI、服务、DAO)。目前我们不使用DI框架,我对体系结构有一个疑问。假设我们有订单、商品和经理实体、相等的DAO类以及服务。根据BL,OrderService应该了解DAOManager和DAOGoods或者ManagerService和GoodsService。请记住,我们仍然没有使用Spring/Guice,哪种连接方式更合适?谢谢。即使您没有使用DI框架,您的类的设计也应该允许以后使用DI,即使用所有依赖项构造函数参数 这是一个很好的设计。

我正在做一个pet项目,它基本上是三层应用程序(UI、服务、DAO)。目前我们不使用DI框架,我对体系结构有一个疑问。假设我们有订单、商品和经理实体、相等的DAO类以及服务。根据BL,OrderService应该了解DAOManager和DAOGoods或者ManagerService和GoodsService。请记住,我们仍然没有使用Spring/Guice,哪种连接方式更合适?谢谢。

即使您没有使用DI框架,您的类的设计也应该允许以后使用DI,即使用所有依赖项构造函数参数

这是一个很好的设计。对象预先声明其依赖项,强制在实例化时提供它们,从而允许类独立,并允许轻松模拟和单元测试

在您的示例中,OrderService应提供以下构造函数之一,具体取决于您的实现风格):

  • OrderService(DAOManager,DAOGoods)
  • 订单服务(管理服务、货物服务)
  • OrderService(IManagerService,IGoodsService)-[接口不具体]
您需要在没有DI框架的情况下手动管理这些对象及其依赖项的创建和实现,这可能会变得很棘手。我强烈建议在没有DI容器的情况下,使用一个与服务定位器相结合的构建器模式