मैं कई वर्षों से एंटरप्राइज़ एप्लिकेशन का उपयोग कर रहा हूं। नेट मेरे ऐप्स में आमतौर पर एक डोमेन मॉडल होता है जिसमें इकाइयां होती हैं जो SQL DB तालिकाओं में मैपिंग करती हैं। मैं एक रिपॉजिटरी पैटर्न, डिपेंडेंसी इंजेक्शन और एक सेवा परत का उपयोग करता हूं।
हाल ही में हमने एमवीसी 3 परियोजनाओं पर काम करना शुरू किया और हमने तर्क दिया कि किस तर्क को रखा जाए। मैं पतली कंट्रोलर / एफएटी मॉडल आर्किटेक्चर के साथ आया और सोच रहा था कि सर्विस लेयर कैसे फिट होगी
विकल्प 1 - मॉडल सेवाओं से बात करता है
नियंत्रक पतला है, मॉडलों पर कॉल के तरीके। मॉडल "जानते हैं" डीबी से खुद को कैसे लोड करें और रिपॉजिटरी या सेवाओं से बात करें। Eg CustomerModel में लोड (id) विधि है और ग्राहक और कुछ बाल वस्तुओं जैसे GetContracts () को लोड करता है।
विकल्प 2 - नियंत्रक सेवाओं से बात करता है
नियंत्रक सेवाओं को मॉडल ऑब्जेक्ट को पुनः प्राप्त करने के लिए कहता है। लोडिंग / स्टोरेज आदि का तर्क सर्विस लेयर में है। मॉडल केवल डेटा के साथ एक शुद्ध इकाई मॉडल है।
विकल्प 1 एक बेहतर विकल्प क्यों होगा, खासकर जब हम उद्यम के बारे में बात करते हैं, तो मेरा अनुभव मुझे अलग-अलग चिंताओं को बताता है, मॉडल और नियंत्रकों को जितना संभव हो उतना पतला रखने और विशेष सेवाएं प्रदान करने के लिए व्यवसाय तर्क (imcl। DB इंटरैक्शन) करता है।
सभी सलाह और अच्छे संसाधनों के संदर्भ के लिए धन्यवाद।