मेरे पास पुरानी पहेली है, इसलिए मैंने सोचा कि मैं इसे आपके साथ साझा करूंगा, शायद सही दिशा मिल जाएगी। बात यह है कि डेटाबेस में हमारी कुछ इकाइयां काफी बड़ी हैं (पढ़ने के लिए कई गुण हैं), और शायद ही कभी व्यापार तर्क सभी इकाई गुणों का उपयोग करता है, इसलिए हर बार मुझे यह सोचने की ज़रूरत होती है कि व्यवसाय तर्क के लिए सही गुणों के लिए कौन से गुण लोड किए जाने चाहिए। बहुत काल्पनिक नमूना:संस्थाएं बहुत अधिक कर रही हैं?
public class Product
{
public string Title {get;set;}
public string Description {get;set;}
public string RetailPrice {get;set;}
public string SupplierId {get;set;}
public Supplier Supplier { get;set;}
// many other properties
}
public class ProductDiscountService
{
public decimal Get(Product product)
{
// use only RetailPrice and Supplier code
return discount;
}
}
public class ProductDescriptionService
{
public string GetSearchResultHtml(Product product)
{
// use only Title and Description
return html;
}
}
ऐसा लगता है कि मैं उन इंटरफेस को लागू करने के रूप में इंटरफेस IDiscountProduct और ISearchResultProduct, मार्क उत्पाद निकाल सकते, तो उन इंटरफेस में से प्रत्येक को लागू छोटे DTOs बनाने के लिए, लेकिन यह है कि (कम से कम overkill के रूप में इस समय लग रहा है मैंने इंटरफ़ेस का उपयोग करके किसी को समूहबद्ध गुण नहीं देखा है)।
छोटे इकाइयों में डेटाबेस में इकाई को विभाजित करने के लिए भी उचित नहीं दिखता है, क्योंकि ये सभी गुण उत्पाद से संबंधित हैं और मुझे डर है कि मुझे कुछ चुनने के लिए कई जुड़ने का उपयोग करने के लिए मजबूर होना होगा और यदि मैं यह तय करूंगा कुछ संपत्ति किसी अन्य इकाई से संबंधित है, यह कदम लागू करने के लिए काफी कठिन होगा।
प्रत्येक विधि को विशेष विधि के व्यवसाय तर्क में उपयोग करने के लिए विधि पैरामीटर भी खराब समाधान की तरह दिखता है।
हम कितने गुणों के बारे में बात कर रहे हैं? – walther
आम तौर पर 20 से कम, 20 से कम, – Giedrius
मैं कहूंगा: यदि आपकी विधि पहले से जानता है कि कौन से गुणों का उपयोग करना है और यह तय रहता है, पैरामीटर का उपयोग करने से एक अच्छा समाधान हो सकता है। परीक्षण करने में आसान और पुन: उपयोग करने में आसान है। हालांकि, यदि कार्यान्वयन विधि हस्ताक्षर में अपरिभाषित है (वर्तमान कार्यान्वयन 2 गुणों का उपयोग करता है लेकिन कल ये 3 हो सकता है), तो आप उपलब्ध सभी गुणों के साथ पूरी उत्पाद चीज़ का उपभोग करना चाहते हैं। यह एक सतत तरीके से बोलता है: इस विधि के लिए इन मानकों की आवश्यकता है और इस विधि को एक उत्पाद की आवश्यकता है। – Polity