2010-02-16 14 views
6

डोमेन संचालित डिज़ाइन का उपयोग करके विकसित एक ब्लॉग एप्लिकेशन में 'पोस्ट' इकाई में टैग इकाइयों का एक संबंधित संग्रह होता है।डोमेन संचालित डिज़ाइन - बाहरी डेटा एपीआई रेस्पोजिटरी या सेवा

पोस्ट बनाने पर (उदाहरण के लिए यूआई से ऑब्जेक्ट पॉप्युलेट करना) मैं आरईएसटी के माध्यम से एक थर्ड पार्टी एपीआई कॉल करना चाहता हूं जो पोस्ट की सामग्री लेता है और एसोसिएशन के लिए अर्थात् टैग (link text) निकालता है।

मुख्य प्रश्न: क्या इस डिजाइन करने के लिए सबसे अच्छा तरीका है ...

यह सबसे अच्छा तैयार किया गया है ताकि पोस्ट इकाई इस तरह के PostServices.GetTags (Postcontent) के रूप में एक डोमेन सेवा कहेंगे अपनी सामग्री गुजर और टैग की एक सूची वापस प्राप्त करना।

** पोस्ट सर्विसेज। गेटटैग फिर एक और रैपर वर्ग के माध्यम से आरईएसटी एपीआई के साथ पूर्णांक करेंगे।

या तीसरे पक्ष एपीआई को एक भंडार के रूप में लपेटा जाना चाहिए?

क्या फ़ंक्शन Post.GenerateTags(), डोमेन इकाई के भीतर मौजूद नहीं होना चाहिए?

आगे के प्रश्न:

1: मैं भी पढ़ा है कि यह एक डोमेन सेवा के साथ एक डोमेन इकाई बातचीत के लिए अच्छा अभ्यास नहीं है। क्या ये सच है?

2: क्या फ़ैक्टरी निर्माण विधि के माध्यम से PostServices डोमेन सेवा का संदर्भ प्राप्त करना ठीक है। उदाहरण के लिए ...

आईपीओस्ट सेवा सर्विस सेवा = ServiceUtil.GetPostService(); वापसी PostService.GetTags (Post.content);

3: क्या यह स्वीकार्य है कि डोमेन सेवा किसी तृतीय पक्ष एपीआई के साथ मिलती है?

4: क्या डोमेन इकाई को केवल यह पता होना चाहिए कि एप्लिकेशन परत के माध्यम से प्राप्त टैग से कैसे निपटना है जिसे आरईएसटी एपीआई कहा जाता है।

धीरे-धीरे मेरे सिर को डीडीडी के आसपास लाने की कोशिश कर रहा है, हालांकि मुझे इस तरह की चीज़ को कार्यान्वित करने के तरीके के बारे में कोई उदाहरण नहीं मिल रहा है।

उत्तर

3

ब्लॉग एप्लिकेशन में, एक पोस्ट एक इकाई है और टैग एक मूल्य वस्तु है। एक टैग पहचान नहीं मिली है। आप होना चाहिए:

  • PostsRepository
  • पोस्ट (इकाई)
  • टैग (मूल्य वस्तु)

एक पोस्ट टैग की एक सूची मिल गया है।

सवाल:

1: मैं भी पढ़ा है कि यह एक डोमेन सेवा के साथ एक डोमेन इकाई बातचीत के लिए अच्छा अभ्यास नहीं है। क्या ये सच है?

हां, यह एक अच्छा अभ्यास नहीं है। आप इकाई डोमेन सेवा के साथ मिलना नहीं चाहती है। यदि आप ऐसा करते हैं, तो आप उन्हें बाद में पुन: उपयोग नहीं कर पाएंगे।क्या आपने डोमेन ईवेंट को आग लगाने पर विचार किया है। आप अपने सेवा डोमेन को कुछ फायर डोमेन इवेंट्स बता सकते हैं।

2.: क्या फ़ैक्टरी निर्माण विधि के माध्यम से PostServices डोमेन सेवा का संदर्भ प्राप्त करना ठीक है। उदाहरण ..IPostService PostService = ServiceUtil.GetPostService(); वापसी PostService.GetTags (Post.content);

हां, यह संभव है। एक कारखाना विधि एक अमूर्त वर्ग या एक इंटरफ़ेस वापस कर सकता है। यह एक अच्छा सॉफ्टवेयर डिजाइन सिद्धांत है "एक इंटरफ़ेस को कोड जो कार्यान्वयन के लिए नहीं है"। यदि आप ऐसा करते हैं, तो आप बाद में अपना कार्यान्वयन बदल सकेंगे और आपको क्लाइंट कोड बदलना नहीं होगा।

3: क्या यह एक तृतीय पक्ष एपीआई के साथ डोमेन सेवा के लिए स्वीकार्य है?

मैं आपको इसकी अनुशंसा नहीं करता, लेकिन यह स्वीकार्य है।

क्षमा करें, मैं प्रश्न 4.

देखो इस लिंक को नहीं समझते। मुझे उम्मीद है कि यह आपकी मदद करेगा।

https://stackoverflow.com/questions/901462/ddd-where-is-it-most-appropriate-to-get-a-list-of-value-objects/901562#901562

+0

जवाब के लिए धन्यवाद, लेकिन मैं अभी भी एक छोटे से स्पष्ट नहीं कर रहा हूँ। क्या आप सुझाव दे रहे हैं कि पोस्ट इकाई एक डोमेन सेवा का संदर्भ प्राप्त करने के लिए कारखाने का उपयोग करती है जो टैग की आपूर्ति करती है। टैग्स मेरे सिस्टम में अद्वितीय हैं और प्राथमिक कुंजी के माध्यम से पहचाने जाते हैं इसका मतलब यह है कि वे एक इकाई हैं? – sjb101

+0

मुझे अभी निम्न लिंक मिला है जो मूल्य वस्तुओं का एक अच्छा स्पष्टीकरण प्रदान करता है ... http://tech.groups.yahoo.com/group/domaindrivendesign/message/6290 तो टैग मूल्य वस्तु होना चाहिए। वैसे भी ऊपर मुख्य प्रश्न पर वापस ...... – sjb101

+0

नहीं, पोस्ट टैग की एक सूची मिली है। और आप PostsRespository से टैग पुनर्प्राप्त कर सकते हैं। एक ब्लॉग एक आसान डोमेन है। आपके पास केवल पोस्ट, टैग और टिप्पणियां हैं। मुझे अनावश्यक नहीं है कि आपको डोमेन सेवा की आवश्यकता क्यों है। आप डोमेन सेवा की जिम्मेदारी क्या है? – yeraycaballero

संबंधित मुद्दे