Ho lavorato molto con PHP. Ma recentemente sono stato inviato su un lavoro che usa Java. In PHP ero solito fare un sacco di oggetti Singleton ma questo modello non ha lo stesso significato in Java che ha in PHP. Quindi volevo andare per una classe di utilità (una classe con metodo statico), ma il mio capo non ama questo tipo di classi e mi chiede di andare per oggetto servizi. Quindi la mia ipotesi era che un oggetto servizio è solo una classe con un costruttore che implementa alcuni metodi pubblici ... Ho ragione?Qual è la definizione di un oggetto Servizio?
risposta
Domain-Driven Design definisce un servizio come:
Un servizio è un'operazione offerto come un'interfaccia che si trova solo nel modello, senza incapsulamento stato ... [p. 105]
Sì, è una classe con metodi pubblici, ma in aggiunta a ciò, implementa un'interfaccia che espone tali metodi. Al centro, il servizio è l'interfaccia - la classe che lo implementa è solo un dettaglio di implementazione.
Ho trovato un'altra definizione per un oggetto servizio invece quella descritta come un'interfaccia per classi concrete che stanno per fornire un determinato servizio attraverso la definizione dell'API impostata dall'interfaccia.
articolo su Microservices>Link definizione per oggetto il servizio:
3: Molti designer orientati agli oggetti, compresi noi stessi, utilizzare l'oggetto del servizio termine nel senso Domain-Driven Design per un oggetto che svolge un processo significativo che non è legato a un'entità. Questo è un concetto diverso rispetto al modo in cui utilizziamo il "servizio" in questo articolo. Purtroppo il termine servizio ha entrambi significati e dobbiamo convivere con il poliseme.
Quello che capisco qui non è l'aspetto tecnico come definirlo come una "interfaccia" ma più il concetto di design che descrive. Capisco anche un service object
semplicemente un dominio di una classe come la sua responsabilità. Quindi, se stai sviluppando applicazioni web potresti avere un oggetto di servizio SecurityService
che è un componente di uno SecurityController
. Il controller chiama il servizio per elaborare effettivamente i servizi specifici di sicurezza (il dominio).
- 1. Qual è la definizione di proxy-aware
- 2. Qual è la definizione esatta di un interprete Metacircolare?
- 3. Qual è la definizione di un URL assoluto
- 4. Qual è la definizione precisa di un set lookahead?
- 5. Perl: qual è la definizione di un test?
- 6. Qual è la vera definizione dell'algoritmo xorshift128 +?
- 7. Qual è la differenza tra un controller e un servizio?
- 8. Definizione dell'oggetto in 2 modi: qual è la differenza?
- 9. Copertura a blocchi di base: qual è la definizione precisa?
- 10. Qual è la definizione di "funzionalità" nella rete neurale?
- 11. Qual è l'esatta definizione di chiusura?
- 12. Qual è la definizione di cardinalità in SQL
- 13. Qual è la definizione di _Rb_tree_increment in bits/stl_tree.h?
- 14. Errori IE8 durante la definizione di un oggetto Javascript?
- 15. Qual è la differenza tra un array e un oggetto?
- 16. Classe, oggetto, entità: qual è la differenza?
- 17. Qual è la definizione di un thread UI? C'è solo un thread UI in un'applicazione .NET?
- 18. Qual è la classe di servizio in programmazione?
- 19. Test Angular2: Qual è la differenza tra un oggetto DebugElement e un oggetto NativeElement in ComponentFixture?
- 20. AngularJS - creazione di un oggetto servizio
- 21. Qual è la differenza tra un oggetto funzione e un oggetto callable?
- 22. Qual è il significato di questa definizione di funzione?
- 23. Qual è la differenza tra un tipo generico e una definizione di tipo generico?
- 24. Qual è la definizione/differenza di "backend" e un "frontend" in uno sviluppo/progetto software?
- 25. Qual è la differenza nell'uso di ReentrentLock e Synchronized (oggetto)?
- 26. Qual è la differenza tra Oggetto, Oggetto e [1: Oggetto, 2: Oggetto]?
- 27. Differenze tra la restituzione di un oggetto e una funzione in una definizione di direttiva?
- 28. Qual è la differenza tra la ricarica del servizio e il riavvio del servizio?
- 29. Qual è la differenza tra un modello di visualizzazione e un oggetto di trasferimento dati?
- 30. Convalida MVC - Mantenerlo ASCIUTTO con un livello di servizio: qual è la migliore pratica?
Quindi, se ho capito bene, per ogni classe di utilità che sto trasformando in servizio dovrei creare un'interfaccia? – MaxouMask
Sì, beh, ma in OO, l'intero concetto di una classe di utilità è un odore di codice. Le vere classi OO hanno responsabilità ben definite ... –
ok grazie mille :) – MaxouMask