मैंने डुप्लिकेशंस से बचने के लिए इस वेबसाइट पर कुछ खोज की है, हालांकि अधिकांश प्रश्न इंटरफेस और अमूर्त वर्ग के बीच एक अमूर्त तुलना के बारे में थे।इंटरफेस बनाम सार वर्ग (विशिष्ट मामले में)
मेरा प्रश्न मेरी विशिष्ट स्थिति विशेष रूप से मेरे सहयोगी के लिए अधिक है और मैं एक ही दृष्टिकोण के बारे में सहमत नहीं हूं।
मैं 3 वर्गों
- नोड (एक फ़ोल्डर संरचना में सार नोड)
- फ़ोल्डर है
- फ़ाइल
हम करने के लिए समग्र पैटर्न का उपयोग (उप फ़ोल्डर और फ़ाइलें शामिल है) सभी फ़ोल्डर्स और उनकी अनुमतियां प्रति उपयोगकर्ता/समूह
कक्षा Node
, यह इंटरफेस या सार वर्ग होना चाहिए? Folder
और File
नोड से प्राप्त होता है।
मेरी राय में मुझे लगता है कि क्योंकि File
सभी तरीकों Folder
उदाहरण AddFolder(Node node)
मेरे सहयोगी ने कहा है कि यह बेहतर कोडिंग के लिए इंटरफेस का उपयोग करने के लिए बेहतर है है कि नहीं होना चाहिए Node
एक सार होना चाहिए।
संपादित करें: मैं इस प्रकार मेरी नोड दुबारा लिखा:
public abstract class Node
{
public string Name { get; set; }
public string FullName { get; set; }
public Node Parent { get; set; }
public List<PermissionEntry> Permissions { get; set; }
protected Node(string fullName)
{
FullName = fullName;
Permissions = new List<PermissionEntry>();
}
public void AssignPermission()
{
// some Codes
}
}
क्या साझा * व्यवहार * हैं? क्या बेस क्लास पर * कोई * कार्यान्वयन होगा? –
यदि मैं आप थे, तो मैं एक कक्षा 'नोड' बनाउंगा, और 'इंटरोड' इंटरफ़ेस – Nolonar