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