Excerpted from DomainDrivenDesignBook
Definition: A
Service is an operation offered as an interface that stands alone in the model, with no encapsulated state.
Problem: Some concepts from the domain aren?t natural to model as objects. Forcing the required domain functionality to be the responsibility of
an
Entity or Value either distorts the definition of a model-based object or adds meaningless artificial objects.
Solution: When a significant process or transformation in the domain is not a natural responsibility of an
Entity or
ValueObject, add an operation to the model as a standalone interface declared as a
Service. Define the interface in terms of the language of the model and make sure the operation name is part of the
UbiquitousLanguage. Make the
Service stateless.
See also:
ServiceServices is mentioned on: Service | JBRainsberger | ThreadView | PersistenceAndLayers | MessagesByTopic | OpenHostService | DDDandJ2EE | TerminologyQuestionOnValueObjectsAndEntities | TimeConsciousObjects | DomainLayerAccessFromJSPsAndHandlers | RepresentingTheDomainInXSD | WhatIsADomainModel | ChoosingBetweenEntityAndValueObjects | HistoryOfTransparentPersistence | ADesignCallingForAFacadeSolution | OOModels | StreamlinedObjectModeling | TypesAndSematicIntegration | RepositoryAndUnitOfWork | BigPicture