मैं यह पता लगाने की कोशिश कर रहा हूं कि एक डोमेन संचालित डिजाइन प्रोजेक्ट में कैशिंग (डालने/निकालने) के लिए कौन सी परत जिम्मेदार होनी चाहिए। लक्ष्य भंडार से पुनर्प्राप्त किसी भी संस्था को कैश करके वेब अनुप्रयोग के प्रदर्शन में सुधार करना है।एक भंडार, डोमेन या अनुप्रयोग की चिंता कैशिंग है?
MyApp.Infrastracture
MyApp.Repositories
MyApp.Domain
MyApp.WebApplication
मुझे लगता है कि क्योंकि यह केवल वेब अनुप्रयोग है कि तब कैश का इस्तेमाल करता है, यह इस परत कि कैशिंग तर्क जाना चाहिए किया जाना चाहिए:
मेरे समाधान के रूप में निम्नानुसार अलग किया जाता है? हालांकि यह सही नहीं लगता है क्योंकि मैं वेब ऐप हल्के वजन रखना चाहता हूं और वेब पृष्ठों की सेवा पर केंद्रित हूं।
इसके अलावा कैशिंग एक प्रथम श्रेणी डोमेन अवधारणा नहीं है, इसलिए डोमेन परत में प्राकृतिक फिट नहीं है।
क्या करना है?
यह उपर्युक्त सभी की चिंता है। कैशिंग उन क्रॉस कटिंग चिंताओं में से एक है जिसे प्रत्येक परत को व्यक्तिगत रूप से संभालने की आवश्यकता होती है और एप्लिकेशन को ऑर्केस्ट्रेट करने की आवश्यकता होती है। – Oded
@ ओडेड - आपको उस टिप्पणी को एक उत्तर देना चाहिए –
@ डेविड केम्प - किया गया ... – Oded