यह बल्कि अजीब है, हालांकि उत्तर उस भाषा / रूपरेखा पर निर्भर करता है जिसका आप उपयोग करते हैं, क्योंकि विभिन्न भाषाओं / रूपरेखाओं में MVC के अलग-अलग दृष्टिकोण हैं।
सामान्य तौर पर, आप एक से एक नियंत्रक का उपयोग नहीं करेंगे:
नियंत्रक आमतौर पर MVC फ्रेमवर्क द्वारा उपयोग किए जाने वाले एक प्रकार का परिणाम देते हैं। इस परिणाम में आपको एक कॉल करने वाले के रूप में बहुत सी जानकारी होती है, ज़रूरत नहीं है (जैसे कि देखने का नाम), और हमेशा उस जानकारी को प्राप्त करना आसान नहीं है जिसे आप रुचि रखते हैं (आपके मामले में) मॉडल, अगर मुझे सही लगता है)।
नियंत्रकों को व्यवसाय कोड से प्रारंभ करना आसान नहीं है, क्योंकि उन्हें अक्सर HTTP अनुरोध और संदर्भ के बारे में कुछ मात्रा में जानकारी की आवश्यकता होती है। यह सभी जानकारी एमवीसी ढांचे द्वारा पारित होने की उम्मीद है।
इससे भी महत्वपूर्ण बात यह है कि यदि आपको दो नियंत्रकों में खोज परिणामों का एक गुच्छा चाहिए- एक जो अंतिम उपयोगकर्ता को परिणाम दिखाता है, दूसरा वह जो आँकड़े उत्पन्न करता है, बस खोज तर्क को आपकी व्यावसायिक परत में डालें (जहाँ यह पहली जगह से संबंधित है, वैसे), और अपने नियंत्रकों को यथासंभव छोटा रखें।
MVC में नियंत्रक की भूमिका, प्रक्रिया को ऑर्केस्ट्रेट करना है:
- अनुरोध से संबंधित इनपुट प्राप्त करें,
- सत्यापनकर्ताओं को इनपुट को मान्य / स्वीकृत करने के कार्य के लिए प्रतिनिधि,
- व्यापार परत के प्रासंगिक तरीकों को बुलाओ,
- परिणामस्वरूप मॉडल और दृश्य को MVC फ्रेमवर्क दें।
नियंत्रक की भूमिका व्यावसायिक तर्क से निपटने के लिए नहीं है।
एक बार कोड व्यावसायिक स्तर पर चला गया, तो आप एक खोज इंटरफ़ेस प्रदान कर सकते हैं जो एक स्पष्ट, सीधे तरीके से पुन: प्रयोज्य हो सकता है, एक नियंत्रक दूसरे से उपयोग किए जाने के विपरीत।