【问题标题】:What is the definition of a Service object?服务对象的定义是什么?
【发布时间】:2011-02-25 01:54:25
【问题描述】:

我一直在使用 PHP。

但最近我被分配了一些使用 Java 的工作。在 PHP 中,我曾经做过很多 Singleton 对象,但这种模式在 Java 中的含义与它在 PHP 中的含义不同。

所以我想选择一个实用类(一个具有静态方法的类),但我的主管不喜欢这种类,并要求我选择服务对象。 所以我的猜测是,服务对象只是一个具有实现一些公共方法的构造函数的类......

我说的对吗?

【问题讨论】:

    标签: java design-patterns terminology


    【解决方案1】:

    我找到了服务对象的另一种定义,而不是描述为具体类的接口,这些具体类将通过​​接口设置的 API 定义提供特定服务。

    关于微服务的文章>Link服务对象的定义:

    3:许多面向对象的设计者,包括我们自己,在领域驱动设计意义上使用术语服务对象来表示执行与实体无关的重要过程的对象。这与我们在本文中使用“服务”的方式不同。遗憾的是,服务一词具有两种含义,我们必须接受多义词。

    我在这里理解的不是将其定义为“界面”之类的技术方面,而是它所描述的设计概念。我也理解service object 只是一个类的域,比如它的职责。因此,如果您正在开发 Web 应用程序,您可能有一个服务对象 SecurityService,它是 SecurityController 的一个组件。控制器调用服务来实际处理特定于安全(域)的服务。

    【讨论】:

      【解决方案2】:

      Domain-Driven Design 将服务定义为:

      SERVICE 是作为独立于模型中的接口提供的操作,没有封装状态... [p. 105]

      是的,它是一个具有公共方法的类,但除此之外,它还实现了一个公开这些方法的接口。在其核心,Service 是接口 - 实现它的类只是一个实现细节。

      【讨论】:

      • 所以如果我做对了,对于我要转换为服务的每个实用程序类,我应该创建一个接口?
      • 是的,好吧,但是在 OO 中,Utility 类的整个概念是代码异味。真正的 OO 类具有明确定义的职责...
      猜你喜欢
      • 2011-01-22
      • 1970-01-01
      • 2013-05-18
      • 2012-01-22
      • 1970-01-01
      • 2018-09-18
      • 2011-03-17
      • 2011-11-05
      • 2018-10-13
      相关资源
      最近更新 更多