'SOLID' में 'I' का मतलब इंटरफ़ेस अलगाव है। इस सिद्धांत का पूरा विचार बड़े इंटरफेस को छोटे लोगों में विभाजित करना है, अधिक मॉड्यूलर। एमवीसी सेवा में आमतौर पर एक इंटरफ़ेस होता है जो नियंत्रक पर निर्भर करेगा। आप नहीं चाहते कि आपके नियंत्रक उस सेवा के ठोस कार्यान्वयन के बारे में जानें। इसलिए, एक या दो तरीकों वाली सेवाओं का एक समूह होना अच्छी बात है।
सेवाएँ सामान्य रूप से बड़े अनुप्रयोगों या सीधे छोटे अनुप्रयोगों में डोमेन मॉडल में DTO लौटाती हैं। डीटीओ का सामान्य रूप से अधिक काम होता है, लेकिन चिंताओं का बेहतर पृथक्करण। विशिष्ट प्रवाह है:
- नियंत्रक कॉल सेवा
- सेवा एक वस्तु देता है (यह एक डीटीओ, डोमेन मॉडल या कुछ और हो सकता है)
- नियंत्रक DTO / डोमेन मॉडल को एक दृश्य मॉडल पर मैप करता है
मैपिंग को मैन्युअल रूप से किया जा सकता है, लेकिन ज्यादातर डेवलपर्स ऑटो मैपिंग जैसे ऑटो मैपिंग फ्रेमवर्क का उपयोग करना पसंद करते हैं क्योंकि हमें प्लंबिंग कोड लिखना पसंद नहीं है और हम काफी आलसी हो सकते हैं :-)
http://en.wikipedia.org/wiki/Interface_segregation_principle
https://github.com/AutoMapper/AutoMapper
डीटीओ और डोमेन मॉडल के उपयोग के बारे में स्टैकओवरफ्लो पर कई चर्चाओं में से एक: /programming/2680071/dto-or-domain-model-object-in-the-view-layer