मैंने DAO के खिलाफ विभिन्न तर्कों को सीधे नियंत्रक वर्ग से और मॉडल वर्ग से DAO के खिलाफ भी देखा है। यदि मुझे व्यक्तिगत रूप से लगता है कि यदि हम MVC पैटर्न का पालन कर रहे हैं, तो नियंत्रक को DAO के साथ युग्मित नहीं किया जाना चाहिए, लेकिन मॉडल वर्ग भीतर से DAO आह्वान करना चाहिए और नियंत्रक को मॉडल वर्ग का आह्वान करना चाहिए। क्योंकि, हम मॉडल वर्ग को एक वेबएप्लिकेशन से अलग कर सकते हैं और हमारे मॉडल वर्ग का उपयोग करने के लिए REST सेवा जैसे विभिन्न तरीकों के लिए कार्यक्षमता का खुलासा कर सकते हैं।
यदि हम नियंत्रक में DAO आह्वान लिखते हैं, तो REST सेवा के लिए कार्यक्षमता का पुन: उपयोग करना संभव नहीं होगा? मैंने नीचे दोनों दृष्टिकोणों को संक्षेप में प्रस्तुत किया है।
दृष्टिकोण # १
public class CustomerController extends HttpServlet {
proctected void doPost(....) {
Customer customer = new Customer("xxxxx","23",1);
new CustomerDAO().save(customer);
}
}
दृष्टिकोण # 2
public class CustomerController extends HttpServlet {
proctected void doPost(....) {
Customer customer = new Customer("xxxxx","23",1);
customer.save(customer);
}
}
public class Customer {
...........
private void save(Customer customer){
new CustomerDAO().save(customer);
}
}
नोट -
यहाँ मॉडल की एक परिभाषा क्या है:
मॉडल: मॉडल एप्लिकेशन डोमेन के व्यवहार और डेटा का प्रबंधन करता है, अपने राज्य (आमतौर पर दृश्य से) के बारे में जानकारी के लिए अनुरोधों का जवाब देता है, और राज्य को बदलने के निर्देशों का जवाब देता है (आमतौर पर नियंत्रक से)।
ईवेंट-चालित प्रणालियों में, मॉडल पर्यवेक्षकों (आमतौर पर विचारों) को सूचित करता है जब जानकारी बदलती है ताकि वे प्रतिक्रिया कर सकें।
मुझे इस पर एक विशेषज्ञ की राय की आवश्यकता होगी क्योंकि मुझे # 1 या # 2 का उपयोग करने वाले कई मिलते हैं, इसलिए यह कौन सा है?