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