मैं हाल ही में कुछ हेल्पर-शैली "यूटिलिटी बैग" की समीक्षा कर रहा था, कुछ बड़े सी # कोडबेस के आसपास स्थिर स्थिर कक्षाएं चल रही हैं, जो मूल रूप से निम्नलिखित बहुत ही संक्षिप्त स्निपेट जैसी चीजें हैं:
// Helpers.cs
public static class Helpers
{
public static void DoSomething() {}
public static void DoSomethingElse() {}
}
मैंने जिन विशिष्ट तरीकों की समीक्षा की है वे हैं
- ज्यादातर एक दूसरे से असंबंधित,
- स्पष्ट राज्य के बिना चालान के पार,
- छोटा, और
- प्रत्येक असंबंधित प्रकार के विभिन्न प्रकारों द्वारा सेवन किया जाता है।
संपादित करें: ऊपर कथित समस्याओं की एक सूची होने का इरादा नहीं है। यह उन विशिष्ट विधियों की सामान्य विशेषताओं की सूची है जिनकी मैं समीक्षा कर रहा हूं। यह अधिक प्रासंगिक समाधान प्रदान करने में मदद करने के लिए संदर्भ है।
बस इस प्रश्न के लिए, मैं इस तरह की विधि को GLUM (सामान्य हल्के उपयोगिता विधि) के रूप में संदर्भित करूंगा। "चमक" का नकारात्मक अर्थ आंशिक रूप से अभिप्रेत है। मुझे खेद है कि अगर यह एक मूक दंड के रूप में सामने आता है।
यहां तक कि GLUMs के बारे में अपने स्वयं के डिफ़ॉल्ट संदेह को अलग रखते हुए, मुझे इस बारे में निम्नलिखित बातें पसंद नहीं हैं:
- एक स्थिर वर्ग को नाम मात्र के रूप में उपयोग किया जा रहा है।
- स्थिर वर्ग पहचानकर्ता मूल रूप से अर्थहीन है।
- जब एक नया GLUM जोड़ा जाता है, या तो (ए) यह "बैग" वर्ग बिना किसी अच्छे कारण के छू जाता है या (बी) एक नया "बैग" वर्ग बन जाता है (जो अपने आप में आमतौर पर एक मुद्दा नहीं है; नया क्या बुरा है) स्थिर कक्षाएं अक्सर असंबंधित समस्या को दोहराती हैं, लेकिन कम विधियों के साथ)।
- मेटा-नामकरण, अपरिहार्य रूप से भयंकर, गैर मानक, और आमतौर पर आंतरिक रूप से असंगत है कि क्या यह है
Helpers
,Utilities
, या जो कुछ भी।
इसे फिर से तैयार करने के लिए एक बहुत अच्छा और सरल पैटर्न क्या है, जो उपरोक्त चिंताओं को संबोधित कर रहा है, और अधिमानतः संभव है कि एक स्पर्श जितना संभव हो?
मुझे शायद जोर देना चाहिए: जिन सभी तरीकों से मैं निपट रहा हूं वे एक-दूसरे से असंबंधित हैं। वहाँ उन्हें अभी भी बहु सदस्यीय स्थिर वर्ग विधि-बैग में बारीक-दाने में तोड़ने का एक उचित तरीका नहीं लगता है।