【问题标题】:Service layer design服务层设计
【发布时间】:2020-06-23 19:33:53
【问题描述】:

我正在开发一个宠物项目,它基本上是 3 层应用程序(UI、服务、DAO)。在当前状态下,我们不使用 DI 框架,我有一个关于架构的问题。假设我们有 Order、Goods 和 Manager 实体,相等的 DAO 类以及服务。根据 BL,OrderService 应该知道 DAOManager 和 DAOGoods 或 ManagerService 和 GoodsService。请记住,我们仍然不使用 Spring/Guice,哪种连接方式似乎更合适?谢谢。

【问题讨论】:

    标签: java service architecture


    【解决方案1】:

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

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

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

    • OrderService(DAOManager, DAOGoods)
    • OrderService(ManagerService, GoodsService)
    • OrderService(IManagerService, IGoodsService) - [接口不是具体的]

    您需要在没有 DI 框架的情况下手动管理这些对象及其依赖项的创建和实现,这可能会变得很棘手。我强烈推荐在没有 DI 容器的情况下使用构建器模式和服务定位器。

    【讨论】:

      猜你喜欢
      • 2011-06-16
      • 2017-01-31
      • 2013-01-15
      • 1970-01-01
      • 2012-11-26
      • 1970-01-01
      • 1970-01-01
      • 2012-12-20
      • 2011-09-25
      相关资源
      最近更新 更多