我一直在用PHP工作。 但最近我被派去使用Java工作。在PHP中我曾经做过很多Singleton对象,但是这种模式在Java中与PHP中没有相同的含义。 所以我想去一个实用工具类(一个带有静态方法的类),但我的主管不喜欢这种类,并要求我去寻找服务对象。 所以我的猜测是服务对象只是一个带有构造函数的类,它实现了一些公共方法...... 我是对的吗?
答案 0 :(得分:24)
Domain-Driven Design将服务定义为:
SERVICE是一种作为接口的操作,它独立于模型中,没有封装状态... [p。 105]
是的,它是一个带有公共方法的类,但除此之外,它还实现了一个公开这些方法的接口。从本质上讲,服务就是接口 - 实现它的类只是一个实现细节。
答案 1 :(得分:3)
我找到了服务对象的另一个定义,而不是那个被描述为具体类的接口,这些接口将通过接口设置的API定义提供某种服务。
关于服务对象的微服务 >Link定义的文章:
3:许多面向对象的设计人员,包括我们自己,在域驱动设计意义上使用术语服务对象来表示一个对象,该对象执行一个与实体无关的重要过程。这与我们如何使用" service"的概念不同。在这篇文章中。可悲的是,服务这个词既有意义,我们也必须忍受多义词。
我在这里理解的不是技术方面,比如将其定义为"界面"但它描述的设计概念更多。我也理解service object
只是一个类的域,就像它的责任一样。因此,如果您正在开发Web应用程序,则可能有一个服务对象SecurityService
,它是SecurityController
的一个组件。控制器正在调用服务以实际处理安全(域)特定服务。