Ich habe viel mit PHP gearbeitet. Aber kürzlich wurde ich auf eine Arbeit geschickt, die Java benutzt. In PHP habe ich eine Menge Singleton-Objekte benutzt, aber dieses Muster hat nicht dieselbe Bedeutung in Java wie in PHP. also wollte ich für eine Utility-Klasse (eine Klasse mit statischer Methode) gehen, aber mein Chef nicht mag diese Art von Klassen und fragte mich, für Dienste Objekt zu gehen. Also meine Vermutung war, dass ein Service-Objekt mit einem Konstruktor nur eine Klasse, die einige öffentliche Methoden implementieren ... Bin ich richtig?Was ist die Definition eines Service-Objekts?
Antwort
Domain-Driven Design definiert einen Dienst als:
A SERVICE eine Operation als Schnittstelle angeboten wird, die allein in dem Modell steht, ohne Zustand einkapselt ... [p. 105]
Ja, es ist eine Klasse mit öffentlichen Methoden, aber zusätzlich implementiert es eine Schnittstelle, die diese Methoden verfügbar macht. Im Kern ist der Dienst die Schnittstelle - die Klasse, die es implementiert ist nur eine Implementierung Detail.
fand ich eine andere Definition für ein Dienstobjekt statt, dass man für konkrete Klassen als eine Schnittstelle beschrieben, die im Begriff sind, einen bestimmten Dienst durch diese API Definition durch die Schnittstelle festgelegt zu liefern.
Artikel über Microservices>Link Definition für Dienstobjekt:
3: Viele objektorientierte Designer, einschließlich uns selbst, den Begriff Service-Objekt in der für ein Objekt Domain-Driven Design Sinn verwenden, Das führt ein bedeutender Prozess, der nicht an eine Entität gebunden ist. Dies ist ein anderes Konzept als die Verwendung von "Service" in diesem Artikel. Leider hat der Begriff Service beide Bedeutungen und wir müssen mit dem Polysem leben.
Was ich hier verstehe, ist nicht der technische Aspekt, es als "Schnittstelle" zu definieren, sondern eher das Designkonzept, das es beschreibt. Ich verstehe auch eine service object
einfach eine Domäne einer Klasse wie ihre Verantwortung. Also, wenn Sie Web-Anwendungen entwickeln Sie können ein Dienstobjekt SecurityService
haben, die Bestandteil eines SecurityController
ist. Der Controller ruft den Dienst auf, um die sicherheitsspezifischen (domänenspezifischen) Dienste tatsächlich zu verarbeiten.
- 1. Was ist die Definition eines Implementierungsdetails?
- 2. Was ist die Definition für die Höhe eines Baumes?
- 3. Was ist die Definition von Proxy-Aware
- 4. Was ist die genaue Definition eines Lookahead-Sets?
- 5. Was ist die genaue Definition eines Metacircular Interpreter?
- 6. Was ist die genaue Definition der Instanzvariable?
- 7. Was ist die Definition von "Legacy-Code"?
- 8. Was ist die genaue Definition von "Token?"
- 9. Was ist die Definition von HTTP_X_PURPOSE?
- 10. Was ist die formale Definition von Inversion of Control?
- 11. JavaScript Objekt Definition Bedingungen - was ist besser?
- 12. Was ist die Definition von "Feature" im neuronalen Netzwerk?
- 13. Was ist die Definition von _Rb_tree_increment in Bits/stl_tree.h?
- 14. Was ist die Definition von "Idiomatic" wie in Idiomatic Javascript?
- 15. Was ist die Definition von "schwere Threading-Umgebung"?
- 16. Was ist die wahre Definition des xorshift128 + -Algorithmus?
- 17. Was ist die Verwendung von Backtick in Golag Strukturen Definition?
- 18. Was ist die Definition von Ziel in Cross-Compiling
- 19. Was ist der Grund für die vorläufige Definition in C?
- 20. Welche Vorteile hat die Definition eines Fremdschlüssels?
- 21. Subroutine Definition was bedeutet $
- 22. Schienenbefestigungen - Definition eines Tabellennamens?
- 23. Was ist die wahre Struktur eines Zeigers?
- 24. Was ist die praktische Grenze eines Textfelds?
- 25. Was ist die maximale Speicherkapazität eines PLIST?
- 26. Was ist die Struktur eines Arrays?
- 27. Wo ist die Definition von `struct ap_conf_vector_t`?
- 28. Was ist der Zweck der Definition eines Pakets in einer Java-Datei?
- 29. korrekte Syntax für die Definition eines Ereignisses delegator
- 30. Was ist falsch an meiner Yap-Operator-Definition?
Also, wenn ich es richtig, für jede Dienstklasse, die ich in den Dienst Umwandlung bin ich soll eine Schnittstelle schaffen? – MaxouMask
Ja, nun, aber in OO ist das gesamte Konzept einer Utility-Klasse ein Code-Geruch. Wahre OO-Klassen haben klar definierte Verantwortlichkeiten ... –
okay vielen Dank :) – MaxouMask