मेरे पास दो समान विधियां हैं जो मूल रूप से एक ही चीज़ को अलग-अलग वस्तुओं के साथ करती हैं। यदि संभव हो तो सामान्य से एक सामान्य विधि बनाने का सबसे अच्छा तरीका क्या है?दो समान अभी तक विभिन्न विधियों में से एक सामान्य विधि कैसे बनाएं?
दो वस्तुओं:
public class StoreObject {
int Key;
string Address;
string Country;
int Latitude;
int Longitude;
}
public class ProjectObject {
int ProjectKey;
string Address;
string Description;
}
दो तरीकों कि मैं संभवतः एक सामान्य बनाना चाहते हैं:
public StoreObject GetStoreByKey(int key)
{
using (DBEntities dbe = new DBEntities())
{
StoreObject so = new StoreObject();
var storeObject = (from s in dbe.StoreTables
where s.Key == key
select s).First();
so.Key = storeObject.key;
so.Address = storeObject.address;
so.Country = storeObject.country;
so.Latitude = storeObject.latitude;
so.Longitude = storeObject.longitude;
return so;
}
}
public ProjectObject GetProjectByKey(int projectKey)
{
using (DBEntities dbe = new DBEntities())
{
ProjectObject po = new ProjectObject();
var projectObject = (from p in dbe.ProjectTables
where p.ProjectKey == projectKey
select p).First();
po.Key = projectObject.p_key;
po.Address = projectObject.p_address;
po.Description = projectObject.p_description;
return po;
}
}
मैं ध्यान दें चाहिए कि:
- मैं कोई नियंत्रण नहीं है तालिका फ़ील्ड का नाम कैसे दिया जाता है (यानी पी_डिस्क्रिप्शन)।
- डीबी में स्टोरटेबल, उदाहरण के लिए, अन्य गुण हो सकते हैं (जैसे टेलीफोन, डाक कोड, आदि) लेकिन मुझे केवल कोड में जो दिखाया गया है, उसे दिखाने में दिलचस्पी है।
- प्रोजेक्टटेबल के लिए भी यही है।
इन तरीकों में एक समान नहीं है:
यदि आप थे सब समानता को अलग करने के लिए, यह कुछ ऐसा होगा। लगभग हर पंक्ति अलग है। आप अभिव्यक्ति में कहां से गुजर सकते हैं, लेकिन इससे केवल चीजें अधिक जटिल हो जाएंगी। उन तरीकों में से प्रत्येक तरीका जानता है कि वे जिस वस्तु से निपटते हैं उसका इलाज कैसे करें। मुझे लगता है कि यह उतना ही सारणित है जितना इसे प्राप्त करने जा रहा है। –
वैसे मुझे तर्क देना होगा कि समानताएं हैं, और जब मैं मानता हूं कि यह पहले से ही सार है, तो मुझे लगा कि मैं कुछ अन्य लोगों को इसे और भी बनाने का विचार कर सकता हूं। – kei