Ist es Verletzung des Clean-Code zum Aufruf der init-Methode im Konstruktor wie diese

Mein Anliegen in der untenstehende code ist, dass der Parameter an den Konstruktor ist eigentlich nicht direkt zugeordnet, um die Klasse-Instanz-Felder. Die Instanz-Felder herleiten Wert aus der parameter-und für die bin ich mit dem initalize-Methode. Weiter, habe ich einige Sachen so, dass das Objekt erstellt wurde, kann verwendet werden, direkt in der folgende code, z.B. Aufruf drawBoundaries(). Ich habe das Gefühl es tut, was gemeint ist, durch anlegen(initialisieren) einer Leinwand in einem abstrakten Sinn.

Ist mein Konstruktor zu viel zu tun? Wenn ich die add-Methoden zu nennen, die in Sachen Konstruktor explizit von außen, das wird falsch sein. Bitte lassen Sie mich wissen, Ihre Ansichten.

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);
}
...

P. S.: Sorry, wenn dies sieht aus wie eine dumme Frage, mein code wird überprüft werden, indem eine OOP-guru, und ich bin gerade besorgt :-0

EDIT:

Las ich einige Bedenken über die Methoden in initalizeCanvas() über-geritten - zum Glück diese Methoden sind private und nicht jeder andere Methoden.

Sowieso nach weiterer Forschung auf dem Netz, das ich angefangen habe, mögen diese mehr... ich hoffe, Euch damit einverstanden !!??

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;
}
  • Ich sehe nichts wohl falsch mit Ihrem code.
InformationsquelleAutor haps10 | 2011-04-23
Schreibe einen Kommentar