Getter und Setter
Category 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
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
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








Comments
Posted by Sascha Göbel At 10:00:48 AM On 19.08.2009 | - Website - |