यह आपके आवेदन पर निर्भर करता है। आधारभूत आधार के रूप में, हार्डकोडिंग तारों और पूरे स्थान पर पूर्णांक के बजाय, आपके प्रोग्राम की आवश्यकता वाले डेटा को रखने के लिए स्थैतिक चर का उपयोग करने के लिए इसका अच्छा डिज़ाइन; इसका मतलब है कि भविष्य में किसी भी बदलाव (यानी आवेदन विस्तृत फ़ॉन्ट रंग) को केवल एक ही बदलाव की आवश्यकता होगी, फिर एक संकलन चक्र और जाने के लिए आपका अच्छा होगा।
हालांकि, यदि ये सेटिंग्स उपयोगकर्ता कॉन्फ़िगर करने योग्य हैं, तो उन्हें हार्ड कोड नहीं किया जा सकता है, लेकिन इसके बजाय बाहरी स्रोत से पढ़ने की आवश्यकता है, और जहां आप इसे करते हैं, डिजाइन, जटिलता और सुरक्षा का विषय है।
सादा पाठ फ़ाइलें एक छोटे से आवेदन के लिए अच्छी हैं, जहां सुरक्षा ढीला है और चीजें सादा पाठ हैं। SublimeText संपादक और नोटपैड ++ संपादक अपनी थीम सेटिंग्स के लिए ऐसा करते हैं और यह अच्छी तरह से काम करता है। (मुझे विश्वास है कि यह सादा पाठ था, शायद वे अब एक्सएमएल में चले गए हैं)
एक बेहतर विकल्प एक्सएमएल है, क्योंकि यह संरचित है, पढ़ने/पार्स/लिखना आसान है। कई परियोजनाएं इसे एक विकल्प के रूप में उपयोग करती हैं। यदि कोई उपयोगकर्ता प्रोग्राम को बंद कर देता है या JVM किसी भी कारण से यादृच्छिक रूप से बाहर निकलता है, तो उन्हें पढ़ने/लिखने के दौरान भ्रष्ट फाइलें देखने की एक बात है। आप बफर जैसे चीजों को देखना चाह सकते हैं। और यदि फ़ाइल/xml फ़ाइल गुम है, तो FileNotFoundExceptions से भी निपटें।
एक और विकल्प किसी प्रकार की डेटाबेस फ़ाइल है, यह थोड़ा और सुरक्षित है, आप एप्लिकेशन स्तर एन्क्रिप्शन जोड़ सकते हैं और आपके पास बहुत सारे विकल्प हैं। बड़े प्रोग्राम जो पहले से ही डीबी बैकएंड का उपयोग करते हैं, जैसे MySQL, पहले से ही एक डेटाबेस है, इसलिए एक नई टेबल बनाएं और कॉन्फ़िगर को स्टोर करें।छोटे अनुप्रयोग SQLite को एक विकल्प के रूप में देख सकते हैं।
यदि यह कभी पता चला है कि आपको इन सेटिंग्स को संशोधित करने की आवश्यकता है तो आपको इन पैरा को xml में संपादित करने और सिस्टम को पुनरारंभ करने के बजाय एक नई रिलीज करने की आवश्यकता होगी। माफी से अधिक सुरक्षित। –
कई चीजों की तरह यह एक संतुलन है। यदि आपको लगता है कि ये गुण भविष्य में नहीं बदले जाएंगे और उन्हें गुणों में डालने का प्रयास (पढ़ना, उन्हें इंजेक्शन देना) तुच्छ से अधिक है, उन्हें कक्षा में रखें। खुद से पूछने का एक सवाल यह है कि: जब निरंतर बाहरी कॉन्फ़िगरेशन बन जाता है? – Augusto
मैं आमतौर पर संपत्ति फ़ाइलों का उपयोग करता हूं। और जब किसी प्रॉपर्टी फ़ाइल में प्रॉपर्टी परिभाषा नहीं मिलती है तो मैं फॉलबैक के रूप में हार्डकोडेड डिफ़ॉल्ट मान का उपयोग करता हूं। – h3nrik