Sem*_*van 21 language-agnostic domain-service-class
我总是看到一些名为"ClassNameService"的类,那么作为逻辑的区别是什么?这些服务类的目标是什么?
Joh*_*ohn 24
一般而言,可能存在由服务控制的域对象的层次结构.如果这些域对象只是没有行为的数据占位符,那么这不适用于面向对象的编程.
请检查以下内容:http://www.martinfowler.com/bliki/AnemicDomainModel.html
更常见的是,在OOP中,域对象组具有其交互形成业务逻辑的行为,并且该逻辑由服务封装.这些服务是有状态的,其状态由这些域对象组成.服务也可以是无状态的,并提供自给自足的功能,想想一个非常简单的计算器API.
想象一下以下示例:有一个HTTP请求来到您的Web应用程序,您必须提取数据,执行一些复杂的计算,一旦完成,将此计算数据作为SOAP消息发送到端点.收到回复后,您应将其返回给发送原始请求的客户端.
您不希望强制客户端手动调用输入的计算和转换.相反,你只想给他一个服务API,它封装了这个逻辑并返回给他预期的结果.
对于Spring应用程序,您有Spring注释:@Service http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/stereotype/Service.html