जैसे कन्स्ट्रक्टर में इनिट विधि को कॉल करने के लिए स्वच्छ कोड का उल्लंघन है, नीचे दिए गए कोड में मेरी चिंता यह है कि कन्स्ट्रक्टर का परम वास्तव में कक्षा के उदाहरण फ़ील्ड में सीधे मैप नहीं किया जाता है। उदाहरण फ़ील्ड पैरामीटर से मूल्य प्राप्त करते हैं और जिसके लिए मैं initalize विधि का उपयोग कर रहा हूं। इसके अलावा, मैं कुछ सामान करता हूं ताकि बनाई गई ऑब्जेक्ट को सीधे उस कोड में उपयोग किया जा सके जो उदा। कॉलिंग ड्रॉबाउंडरीज()। मुझे लगता है कि यह एक अमूर्त अर्थ में कैनवास बनाने (प्रारंभ करने) के माध्यम से क्या कर रहा है।क्या यह
क्या मेरा कन्स्ट्रक्टर बहुत अधिक कर रहा है? अगर मैं बाहर से बाहर कन्स्ट्रक्टर में सामान को कॉल करने के तरीकों को जोड़ता हूं, तो यह गलत होगा। कृपया मुझे अपने विचार बताएं।
public class Canvas {
private int numberOfRows;
private int numberOfColumns;
private final List<Cell> listOfCells = new LinkedList<Cell>();
public Canvas(ParsedCells seedPatternCells) {
initalizeCanvas(seedPatternCells);
}
private void initalizeCanvas(ParsedCells seedPatternCells) {
setNumberOfRowsAndColumnsBasedOnSeedPatten(seedPatternCells);
drawBoundaries();
placeSeedPatternCellsOnCanvas(seedPatternCells);
}
...
पीएस .: क्षमा करें अगर यह मूर्खतापूर्ण प्रश्न की तरह दिखता है; मेरे कोड एक OOP गुरु द्वारा समीक्षा की जा रही है और मैं सिर्फ चिंतित हूँ: -0
संपादित करें:
मैं) initalizeCanvas (में तरीकों के बारे में कुछ चिंता पढ़ा जा रहा से अधिक ग्रस्त - सौभाग्य से इन तरीकों हैं निजी और कोई अन्य तरीकों को कॉल न करें।
वैसे भी, नेट पर आगे के शोध के बाद मैंने इसे और अधिक पसंद करना शुरू कर दिया है ... मुझे आशा है कि आप लोग सहमत होंगे !!??
public class Canvas {
private int numberOfRows;
private int numberOfColumns;
private final List<Cell> listOfCells = new LinkedList<Cell>();
private Canvas() {
}
public static Canvas newInstance(ParsedCells seedPatternCells) {
Canvas canvas = new Canvas();
canvas.setNumberOfRowsAndColumnsBasedOnSeedPatten(seedPatternCells);
canvas.drawBoundaries();
canvas.placeSeedPatternCellsOnCanvas(seedPatternCells);
return canvas;
}
मुझे आपके कोड के साथ तर्कसंगत रूप से कुछ भी गलत नहीं दिख रहा है। इस मामले में –