अनुभव के आधार पर एक उदाहरण देता हूं। अधिकांश पुस्तकालय मैं एक दिन से दिन के आधार पर किसी तरह ओओपी का उपयोग करता हूं। OOP कई डोमेन के लिए आवश्यक जटिलता को छिपाने में सक्षम है, यह एक तंत्र नहीं है जो वास्तव में प्रदर्शन में मदद करता है। क्या हो सकता है कि एक पुस्तकालय वस्तु पदानुक्रम के आधार पर विशिष्ट अनुकूलन का उपयोग करने में सक्षम हो, लेकिन अधिकांश भाग उपयोगकर्ता से जटिलता को छिपाने के बारे में है। डिज़ाइन पैटर्न देखें, वे इस जटिलता को पूरा करने के लिए अक्सर नियोजित होते हैं।
उदाहरण के तौर पर पेट्सक को लें। PETS OOP के एक निरीक्षक / निष्पादक मॉडल का उपयोग करता है, जहाँ इसका कोई भी एल्गोरिथम किसी दिए गए ऑब्जेक्ट में उपलब्ध दिनचर्या को चुनता है जो कि दिनचर्या को पूरा करने के लिए निष्पादित करता है। यह उपयोगकर्ता को चिंताओं को अलग करने की अनुमति देता है, उदाहरण के लिए मैट्रिक्स कार्रवाई में किसी भी प्रकार की अवरुद्ध या अनुकूलित दिनचर्या शामिल हो सकती है और प्रभावी रूप से कई पुनरावृत्तियों सॉल्वरों द्वारा इसका उपयोग किया जा सकता है। उपयोगकर्ता को अपने स्वयं के डेटा प्रकारों और मूल्यांकन को निर्दिष्ट करने की क्षमता प्रदान करने से, उन्हें कुछ महत्वपूर्ण दिनचर्याएँ मिलती हैं और पूरे पुस्तकालय की कार्यक्षमता अभी भी उपलब्ध है।
एक और उदाहरण मैं दे रहा हूँ FEniCS और deal.II। ये दोनों पुस्तकालय OOP का उपयोग बड़ी संख्या में परिमित तत्व विधियों के सामान्यीकरण के लिए करते हैं। तत्व प्रकार, तत्व क्रम, चतुर्भुज निरूपण, आदि से सब कुछ में विनिमेय है। हालांकि ये दोनों पुस्तकालय कुछ विशेष-उद्देश्य वाले FEM कोड्स की तुलना में "धीमे" हैं, लेकिन वे उपयोगकर्ता के लिए FEM की अधिक जटिलता के साथ कई प्रकार की समस्याओं को हल करने में सक्षम हैं।
मेरा अंतिम उदाहरण एलिमेंटल है। एलिमेंटल एक नया घने रेखीय बीजगणित पुस्तकालय है जिसने एमपीआई संचारकों और डेटा स्थान के प्रबंधन के लिए एक बहुत ही सरल भाषा निर्माण में कठिनाई का सामना किया है। इसका परिणाम यह है कि यदि आपके पास FLAME सीरियल कोड है, तो डेटाटाइप्स को बदलकर आप एलीमेंट के माध्यम से एक समानांतर कोड भी रख सकते हैं। और भी दिलचस्प आप वितरण के लिए दूसरे के बराबर सेट करके डेटा वितरण के साथ खेल सकते हैं।
ओओपी को जटिलता को प्रबंधित करने के तरीके के रूप में सोचा जाना चाहिए, न कि हाथ से लुढ़का विधानसभा के साथ प्रतिस्पर्धा करने के लिए एक प्रतिमान। इसके अलावा इसे खराब तरीके से करने के परिणामस्वरूप बहुत अधिक ओवरहेड हो जाएगा और किसी को समय पर रखना चाहिए और उन तंत्रों को अपडेट करना चाहिए जिनके साथ वे इसका उपयोग करते हैं।