मैं PHP के साथ बहुत काम कर रहा हूं। लेकिन हाल ही में मुझे जावा पर उपयोग किए जाने वाले काम पर भेजा गया था। PHP में मैं बहुत सारे सिंगलटन ऑब्जेक्ट करता था लेकिन इस पैटर्न में जावा में एक ही संकेत नहीं है कि यह PHP में है। तो मैं एक उपयोगिता वर्ग (स्थिर विधि के साथ एक वर्ग) के लिए जाना लेकिन मेरी मुख्य वर्गों में से इस तरह पसंद नहीं है और मुझे सेवाओं वस्तु के लिए जाने के लिए पूछना चाहता था। तो मेरा अनुमान था कि एक सेवा वस्तु एक निर्माता है कि कुछ सार्वजनिक तरीकों को लागू करने के साथ सिर्फ एक वर्ग है ... मैं सही हूँ?सेवा ऑब्जेक्ट की परिभाषा क्या है?
उत्तर
Domain-Driven Design के रूप में एक सेवा परिभाषित करता है:
एक सेवा एक ऑपरेशन एक अंतरफलक है कि मॉडल में अकेला खड़ा के रूप में की पेशकश की, encapsulating राज्य ... [पी के बिना है। 105]
हां, यह सार्वजनिक विधियों के साथ एक वर्ग है, लेकिन इसके अतिरिक्त, यह उन तरीकों का खुलासा करने वाले इंटरफ़ेस को लागू करता है। वर्ग कि यह सिर्फ एक कार्यान्वयन विस्तार है लागू करता है - इसके मूल में, सेवा इंटरफ़ेस है।
मैं एक सेवा वस्तु के लिए एक और परिभाषा पाया बजाय उस ठोस वर्ग के बारे में है कि एपीआई परिभाषा इंटरफेस द्वारा निर्धारित के माध्यम से एक निश्चित सेवा प्रदान कर रहे हैं के लिए एक इंटरफेस के रूप में वर्णित।
अनुच्छेद के बारे में Microservices सेवा वस्तु के लिए>Link परिभाषा:
3: कई वस्तु उन्मुख सहित अपने आप को, एक वस्तु के लिए डोमेन संचालित डिजाइन अर्थ में शब्द सेवा ऑब्जेक्ट का उपयोग डिजाइनर, कि वहन करती एक महत्वपूर्ण प्रक्रिया जो किसी इकाई से बंधी नहीं है। यह इस लेख में "सेवा" का उपयोग करने के तरीके के बारे में एक अलग अवधारणा है। अफसोस की बात है कि शब्द सेवा दोनों अर्थ हैं और हमें polyseme के साथ रहना है।
मैं यहां क्या समझता हूं कि यह तकनीकी पहलू नहीं है जैसे इसे "इंटरफ़ेस" के रूप में परिभाषित करना है, लेकिन यह डिज़ाइन अवधारणा का वर्णन करता है। मैं service object
को बस अपनी ज़िम्मेदारी जैसी कक्षा का एक डोमेन भी समझता हूं। तो अगर आप वेब एप्लिकेशन विकसित कर रहे हैं आप एक सेवा वस्तु SecurityService
जो एक SecurityController
का एक घटक है हो सकता है। नियंत्रक वास्तव में सुरक्षा (डोमेन) विशिष्ट सेवाओं को संसाधित करने के लिए सेवा को बुला रहा है।
यह सही है, हर उपयोगिता वर्ग है कि मैं सेवा में बदलने के लिए कर रहा हूँ मैं एक इंटरफेस बनाने के लिए माना जाता रहा हूँ तो अगर मैं हो सकते हैं? – MaxouMask
हाँ, ठीक है, लेकिन ओओ में, उपयोगिता वर्ग की पूरी अवधारणा एक कोड गंध है। सही ओओ कक्षाओं में अच्छी तरह से परिभाषित जिम्मेदारियां हैं ... –
ठीक है बहुत बहुत धन्यवाद :) – MaxouMask