web-dev-qa-db-fra.com

Quelle est la classe de service en programmation?

Je vois toujours des classes qui sont nommées "ClassNameService", eh bien quelle est la différence en tant que logique? Quel est l'objectif de ces classes de service?

19

D'une manière générale, il peut exister une hiérarchie d'objets de domaine contrôlés par les services. Si ces objets de domaine ne sont que des espaces réservés de données sans comportement, cela n'est pas vrai pour la programmation orientée objet.

Vérifiez les éléments suivants: http://www.martinfowler.com/bliki/AnemicDomainModel.html

Plus généralement, au sein de la POO, un groupe d'objets de domaine a un comportement dont l'interaction forme une logique métier et cette logique est encapsulée par le service . Ces services sont avec état , leur état étant composé de ces objets de domaine. Les services peuvent également être sans état et offrir des fonctionnalités autonomes, pensez à une API de calculatrice très simple.

Imaginez l'exemple suivant: une demande HTTP est arrivée dans votre application Web et vous devez extraire des données, effectuer des calculs complexes et, une fois cela fait, envoyer ces données calculées sous la forme d'un message SOAP à un point de terminaison). Une fois que vous avez reçu la réponse, vous devez la renvoyer au client qui a envoyé la demande d'origine.

Vous ne voulez pas forcer votre client à appeler manuellement le calcul et la transformation de l'entrée. Au lieu de cela, vous voulez simplement lui proposer une API de service qui encapsule cette logique et lui renvoie le résultat attendu.

Pour les applications Spring, vous avez l'annotation Spring: @Service http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/stereotype/Service.html

24
John