मैं डीडीडी में सेवाओं को डिपेंडेंसी इनवर्सन के परिणाम के रूप में देखता हूं ।
यदि आप "सादे" निर्भरता का उपयोग करते थे, तो आपका डोमेन कोड किसी इकाई, या कारखाने को बचाने या क्वेरी करने के लिए डेटाबेस को कॉल करेगा, जो एक इकाई बनाता है, जो डेटाबेस या बाहरी सेवा या किसी अन्य बुनियादी ढांचे कोड से बंधा होता है।
लेकिन ऐसा नहीं है कि डोमेन कोड कैसा होना चाहिए। डोमेन कोड इन्फ्रास्ट्रक्चर कोड पर निर्भर नहीं होना चाहिए। जैसा कि यह निर्भरता परीक्षण करने के लिए कठिन बनाता है और, संभवतः, पुन: उपयोग। जिसके कारण आप उस निर्भरता को उलट देते हैं। आप आधारभूत संरचना कोड को डोमेन कोड पर निर्भर करते हैं। और ऐसा करने के लिए, आपको एक अमूर्तता का परिचय देना होगा। एक अमूर्तता जो यह बताती है कि आधारभूत संरचना द्वारा डोमेन कोड के किस व्यवहार को लागू करने की उम्मीद है।
और डीडीडी में सेवाएं अमूर्त हैं। अधिकांश मामलों में, डोमेन कोड के लिए, उन सेवाओं को सादा इंटरफेस होना चाहिए। और कार्यान्वयन बुनियादी ढांचे के कोड में होना चाहिए, जिसमें उन इंटरफेस पर निर्भरता है।