2012-06-23 13 views
6

क्या आप मौजूदा नियंत्रक को और अधिक क्रिया जोड़ने के बजाय एक नया नियंत्रक बनाने का निर्धारण करते हैं? आप रेखा कहां खींचते हैं और क्यों?अधिक नियंत्रक लेकिन कम क्रियाएं या कम नियंत्रक लेकिन अधिक क्रियाएं

उत्तर

5

क्या निश्चित रूप से करता है नहीं चित्र में मिल actions¹ की संख्या है - कम से कम इस अर्थ में कि में "ओह, मैं इस नियंत्रक में 50 कार्यों पर हूँ, चलो एक दूसरे से शुरू करते हैं।"

guideline² होना चाहिए: नियंत्रक कार्यों कि वस्तु के एक ही प्रकार पर काम (मॉडल के एक ही प्रकार एक बेहतर परिभाषा हो सकता है) के लिए एक तार्किक समूह रहे हैं। यदि ऐसा होता है कि आपके पास कार्यक्षमता में इतनी समृद्ध मॉडल है कि 30 अलग-अलग कार्रवाइयां हैं जिन पर इसे किया जा सकता है, आगे बढ़ें और उन्हें एक ही नियंत्रक में रखें।

सिक्का के दूसरी तरफ: यदि आपके पास साधारण मॉडल हैं और आप स्वयं को केवल कुछ ही क्रियाओं के साथ नियंत्रकों को लिखते हैं, तो चिंता करने के कारण आवेदन की रखरखाव के बारे में अच्छा महसूस करने का कारण होना चाहिए ।


नोट्स:

बेशक ¹, कि कई कार्यों के साथ एक नियंत्रक संभव कोड दुरुपयोग के लिए एक लाल झंडा है, इसलिए संख्या को ध्यान में आना चाहिए - बस कठिन नियम किसी तरह के रूप में नहीं ।

² और यह वास्तव में एक दिशानिर्देश है - यहां एक उद्देश्य कुछ धार्मिक ग्रंथों का पालन न करने के लिए एक रखरखाव प्रणाली का निर्माण करना है।

+0

"नियंत्रक एक ही प्रकार के ऑब्जेक्ट पर चलने वाले कार्यों के लिए एक तार्किक समूह हैं (उसी प्रकार का मॉडल बेहतर परिभाषा हो सकता है)"। क्या यह 1 नियंत्रक 1 इकाई की तरह लगता है? – Elisabeth

+0

@ एलिसा: ऐसा लगता है, लेकिन संस्थाओं की इतनी बारीकी से संबंधित होने की भी संभावना है कि वे वास्तव में एक ही नियंत्रक से संबंधित हैं। – Jon

+0

2 इकाइयों को इतना बंद कर दिया गया है कि वे एक ही नियंत्रक में आते हैं? – Elisabeth

5

एक नया नियंत्रक बनाने के लिए निर्धारित करने वाला प्रमुख कारक वह तर्क/कार्यक्षमता है जो वे करते हैं। आप क्या आप वाकई separate concerns सुनिश्चित करना होगा:

public class ProfileController { } 

public class MainController { } 

public class AccountController { } 

public class ShoppingCartController { } 

पिछले नियंत्रकों से प्रत्येक उनके संबंधित डोमेन सेवाओं/मॉडल और उनके विचारों के बीच संचार के समन्वय के लिए उपयोग किया जाता है।

2

अंगूठे के सामान्य नियम के रूप में, यदि मैं बड़ा या बहुत अधिक मिलता हूं तो मैं सभी क्रियाओं को जितना सरल कर सकता हूं, तब मैं देखता हूं कि मैं निर्माता सहायक कार्य कर सकता हूं या नहीं।

यदि आवश्यक हो तो मेरे पास डीबी इकाई प्रति नियंत्रक है।

इसलिए उदाहरण के लिए मैं एक उपयोगकर्ता नियंत्रक, एक गाड़ी नियंत्रक, एक आइटम होता नियंत्रक आदि आदि

मुझे लगता है कि किसी भी विशिष्ट नियम हैं न। यह सिर्फ सभी तार्किक रखने के बारे में है। यदि यह आपके लिए तार्किक है तो आमतौर पर यह सब कुछ मायने रखता है, जब तक कि आप एक टीम में न हों, तो इसे हर किसी के लिए तार्किक होना चाहिए।

उम्मीद है कि इससे मदद मिलती है।

संबंधित मुद्दे