मैं कुछ कोड के साथ काम कर रहा हूं जो बच्चे के कन्स्ट्रक्टर में अपने माता-पिता को एक बच्चे नोड जोड़ता है। कोड इस तरह दिखता है:सर्वश्रेष्ठ अभ्यास: बाल कन्स्ट्रक्टर में माता-पिता को बाल नोड जोड़ना या नहीं?
कक्षा:
class Node1 {
public Node1(Node1 parent, String name) {
if(parent != null) {
parent.add(this);
}
this.parent = parent;
}
private void add(Node1 child) {
children.add(child);
}
}
उपयोग:
Node1 parent = new Node1(null, "parent");
Node1 child1 = new Node1(parent, "child1");
Node1 child2 = new Node1(parent, "child2");
यह इस तरह से लागू करने क्लास Node1
के उपयोगकर्ता द्वारा स्पष्ट रूप से चाइल्ड नोड जोड़ने की जरूरत नहीं है (कम कोड) इसके माता-पिता के लिए और आपने गारंटी दी है कि एक बच्चे नोड के माता-पिता हैं।
मैं व्यक्तिगत रूप से इस तरह यह लिखा नहीं होता है, लेकिन अधिक की तरह निम्नलिखित:
class Node2 {
public Node2(String name) {
}
public void add(Node2 child) {
children.add(child);
child.setParent(this);
}
}
Node2 parent = new Node2("parent");
Node2 child1 = new Node2("child1");
parent.add(child1);
Node2 child2 = new Node2("child2");
parent.add(child2);
तो मेरे सवाल है, यह एक अच्छा विचार इसे लागू करने के रूप में कक्षा Node1
में दिखाया गया है या वहाँ किसी भी हो रहा है इस तरह से करने के लिए आपत्तियां? या क्या कोई तर्क नहीं है कि एक दूसरे से बेहतर क्यों है?
+1 की तरह एक के उपयोग के लिए: मैं सुंदर ज्यादा क्या कहा होता। –
यह एक अच्छा मुद्दा है, यह बेहतर है कि इसे किसी कन्स्ट्रक्टर में उपयोग न करें। –