में परिपत्र संदर्भ से बचें यह इतना आम परिदृश्य होना चाहिए कि इसके बारे में बहुत कुछ लिखा गया है, उम्मीद है कि वास्तव में भी एक अच्छा पैटर्न है। मेरे पास एक डोमेन मॉडल है जिसमें कस्टम कंटेनर में इकाइयां होती हैं। उदाहरण (गुण और इंटरफेस संक्षिप्तता के लिए छोड़ा गया है) के लिए:डोमेन मॉडल
class Entity
{
public int Id;
public EntityContainer ParentContainer;
}
class EntityContainer
{
public int Id;
public IList<Entity> Entities = new List<Entity>();
public void AddEntity(Entity entity)
{
entity.ParentContainer = this;
Entities.Add(entity);
}
}
class Main
{
public Main()
{
Entity entity1 = new Entity();
Entity entity2 = new Entity();
EntityContainer entityContainer = new EntityContainer();
entityContainer.AddEntity(entity1);
entityContainer.AddEntity(entity2);
// Can now traverse graph easily, e.g.
Console.WriteLine("entity1's parent container ID = " + entity1.ParentContainer.Id);
Console.WriteLine("Container contains at least this entity ID: " + entityContainer.Entities[0].Id);
}
}
मैं अब आसानी से अपने वस्तु ग्राफ दोनों तरीकों से पार कर सकते हैं, लेकिन एक परिपत्र संदर्भ बनाया है। क्या निर्भरता तलाक के लिए आप तीसरे प्रकार का निर्माण करेंगे?
अग्रिम
आपके पास मौजूद मॉडल में एक से अधिक अभिभावक कंटेनर के लिए एक व्यस्त रिश्ते की अनुमति नहीं है, इसलिए यदि आपके पास एकाधिक कंटेनर में कोई इकाई है तो संभवत: वैसे ही काम नहीं करेगा। – workmad3
क्या आप स्पष्टीकरण दे सकते हैं कि यह परिपत्र कैसे है? जहां तक मैं समझता हूं, आप पेड़ की संरचना बना रहे हैं, इसलिए मुझे नहीं पता कि सर्कुलरिटी – RobV
से कहां से आती है EntityContainer और EntityContainer का संदर्भ एंटीटी का संदर्भ है। – ng5000