Telescoping Constructor
Allgemein Pattern
public class MyClass {
private int req1;
private int req2;
private int opt1;
private int opt2;
private int opt3;
}
Wer kennt nicht so eine Klasse mit 2 Parametern, welche required und weiteren optionalen?
Kategorie public class MyClass {
private int req1;
private int req2;
private int opt1;
private int opt2;
private int opt3;
}
Wer kennt nicht so eine Klasse mit 2 Parametern, welche required und weiteren optionalen?
Eine beliebte Implementierung der Konstruktoren
ist dann ->
public MyClass(int xreq1, int xreq2){....};
public MyClass(int xreq2, int xreq2, int xopt1){....};
public MyClass(int xreq2, int xreq2, int xopt1,int xopt2){....};
public MyClass(int xreq2, int xreq2, int xopt1,int xopt2,int xopt3){....};
Dies nennt man dann das Pattern "Telescoping Constructor"-Pattern, schön dass sich Architekten immer einen Namen einfallen lassen.
Einer der größten Nachteile ist natürlich, dass man bei ca. 20 Optionalen Paramentern am Ende nicht wer weiß, welcher beim Aufruf des Kontruktors, was bedeutet ->
new MyClass(0,2,3,5,8,9) usw.
Ein Builder-Pattern mit Fluent-Interface schafft hier Abhilfe....
Gruß JJR
public MyClass(int xreq1, int xreq2){....};
public MyClass(int xreq2, int xreq2, int xopt1){....};
public MyClass(int xreq2, int xreq2, int xopt1,int xopt2){....};
public MyClass(int xreq2, int xreq2, int xopt1,int xopt2,int xopt3){....};
Dies nennt man dann das Pattern "Telescoping Constructor"-Pattern, schön dass sich Architekten immer einen Namen einfallen lassen.
Einer der größten Nachteile ist natürlich, dass man bei ca. 20 Optionalen Paramentern am Ende nicht wer weiß, welcher beim Aufruf des Kontruktors, was bedeutet ->
new MyClass(0,2,3,5,8,9) usw.
Ein Builder-Pattern mit Fluent-Interface schafft hier Abhilfe....
Gruß JJR