में रिपोजिटरी या गेटवे पैटर्न रूबी में रिपोजिटरी या गेटवे पैटर्न को कैसे कार्यान्वित कर सकता हूं?रूबी
मैं एक सी # दुनिया से आते हैं और मैं आमतौर पर दूर सार अपने डेटा का उपयोग कर सकते लेकिन ActiveRecord के साथ रूबी में डिफ़ॉल्ट डेटा का उपयोग तंत्र के रूप में, यह स्पष्ट नहीं है कि पूरा करने के लिए कैसे।
क्या मैं आमतौर पर सी # में करना होगा सार इंटरफेस के साथ काम है और फिर EFCustomerRepository
, NHibernateCustomerRepository
और InMemoryCustomerRepository
और स्थिति मैं मिलान ठोस कार्यान्वयन इंजेक्षन पर निर्भर करता है के लिए एक ठोस कार्यान्वयन है।
तो अब, रूबी तरीका क्या है ?!
जहाँ तक मुझे यह समझ के रूप में, गतिशील भाषाओं में आप डि (निर्भरता इंजेक्शन) की तरह कुछ की जरूरत नहीं होगी। और रूबी में मज़ेदार जैसी चीजों की अनुमति देने के लिए शक्तिशाली भाषा विशेषताएं हैं।
लेकिन आप mixin वर्ग या मॉड्यूल-स्तर पर स्थिर उपयोग करने के लिए परिभाषित करेंगे?
मैं अपने व्यवसाय तर्क कैसे लिख सकता हूँ कि अगर मैं एक में स्मृति भंडार के खिलाफ विकसित करना चाहते हैं और उत्पादन में मैं अपने ActiveRecord-भंडार के लिए स्विच होगा?
तो गलत रास्ते पर यहाँ हो सकता है के बाद से मैं एक स्थिर टाइप किया भाषा में सोच करने के लिए इस्तेमाल कर रहा हूँ। किसी को इस काम से रूबी तरीके से कैसे निपटना होगा? असल में मैं अपनी दृढ़ता परत सार बनाना चाहता हूं और यह कार्यान्वयन अदलाबदल करने योग्य है।
संपादित करें: मैं किसी भी मदद के लिए करने के लिए robert c. martins (unclebob) keynote about architecture
धन्यवाद जिक्र कर रहा हूँ ...
http://lancecarlson.github.com/2012/05/15/dci-and-decoupling-business-logic-from-ruby-on-rails.html यह ऐसा कुछ है जो किसी ने किया अंकल बॉब लेख की प्रतिक्रिया। और भी आने को है। – SpoBo
मैं एक मणि की तलाश भी कर रहा हूं जो भंडार पैटर्न लागू करता है। – Andrew