अपने talk में 54:53 मिनट के निशान पर उपयोग करने वाले प्रोग्राम, रिच हिकी निर्भर कार्यक्रम भागों को कम करने के साधन के रूप में कतारों के उपयोग के बारे में बात कर रहा है।कतार
// Warning: Java-pseudo-code ahead
class Job {
public void doRun(A a) {
saveObjectToDatabase(a);
B b = computeB(a);
saveObjectToDatabase(b);
C c = computeC(b);
logToFile(c);
}
}
saveObjectToDatabase
और saveObjectToDatabase
दुष्प्रभाव के साथ एक विधि के रूप में देखा जा सकता है: क्या आप मुझे यह डिजाइन और/या लचीलापन है सुधार करने के लिए कैसे जावा-छद्म कोड का निम्न भाग deouple करने पर एक उदाहरण दे सकते हैं , जबकि computeB
और computeC
का आउटपुट केवल a
पर निर्भर करता है।
मुझे पता है कि यह प्रश्न अस्पष्ट/व्यापक है। मैं अपने कार्यक्रम को बड़े पैमाने पर जटिल किए बिना क्यूइंग तंत्र का लाभ उठाने के बारे में महसूस करना चाहता हूं और अभी भी यह सुनिश्चित कर रहा हूं कि यह सही क्रम में सही काम करता है। सही दिशा में किसी भी संकेतक की सराहना की जाती है।
यह बहुत स्पष्ट नहीं है। जो उदाहरण आप दिखा रहे हैं वह एक स्व-निहित विधि है, जो बाहरी निर्भरता का उपयोग नहीं करता है। नौकरी को कुछ भी नहीं मिला है क्योंकि decouple करने के लिए कुछ भी नहीं है। –
मेरा अनुमान है कि @Matt विभिन्न थ्रेड के बीच काम की इकाइयों को स्थानांतरित करने के लिए कतारों का उपयोग करके computeB() और computeC() विधियों को अलग-अलग थ्रेड प्राप्त करना चाहेंगे। – Rich
देखें [एंटरप्राइज़ एकीकरण पैटर्न] (http://www.eaipatterns.com/)। – TrueWill