Getter und Setter
Java .Net Pattern
Jeder der sich ein bisserl mit Java auskennt hat diese bestimmt schon gesehen die Getter und Setter
die meisten implementierungen sehen ja in der Art aus ->
void setAttribute( xAttribute : Type) { m_Attribute = xAttribute } und Type getAttribute { return m_Attribiute } oder so ähnlich
Kategorie Jeder der sich ein bisserl mit Java auskennt hat diese bestimmt schon gesehen die Getter und Setter
die meisten implementierungen sehen ja in der Art aus ->
void setAttribute( xAttribute : Type) { m_Attribute = xAttribute } und Type getAttribute { return m_Attribiute } oder so ähnlich
In C# gibt es ja auch die Properties Möchte nicht wissen,wieviele implementierung wie diese aussehen ->
class Pen {
private int m_Color; // private field
public int Color // public property {
get {return m_Color;}
set {m_Color = value;}
}
}
Das immer wieder genannte Argument für obige Implementierung ist -> Man kann später noch Code einfügen, wie z.B. Validierungen, aber mal ehrlich wie oft passiert es
Weiters wäre es auch kein Problem zuerst ein Public Field zu nehmen und wenn sich später herausstellt, dass man wirklich validierungen u.a. einbauen möchte, könnte man das Property einfügen. An den Aufrufen ausserhalb würde ich nichts ändern, einmal compile und geht.
Da sich dieser Ansatz verbreitet hat, ist wohl wie mit den Fliegen und dem S-Wort
Hat sich hierzu ein "Anti-Pattern" ergeben, welches auch noch andere Vorteile hat -> Fluent Interface.
Die grundsätzliche Idee dahinter ist, dass jedes Methode eine Referenz auf das Objekt zurück gibt. Hierdurch lassen sich dann Konstrukte wie folgende Bilden -> person.select("*").from("Person").where("Firstname = 'Peter'").orderby(1) es sieht nicht nur nett aus sondern lässt sich auch gut lesen
Hier noch zwei weitere Links ->
Martin Fowler -> Fluent Interface
www.fluent-interfaces.com
Gruß JJR
Kommentare
Erstellt von Sascha Göbel um 10:00:48 AM am 08/19/2009 | - Website - |