Method Object Pattern
Beim Method Object Pattern wird eine Methode in eine eigene Klasse ausgelagert. Die Eingabeparameter der Methode werden zu Instanzvariablen der Klasse.
Aus
class C
{
D m(X x, Y y, Z z) { ... Rumpf der Methode ... }
}
wird
class M
{
X x;
Y y;
Z z;
//
M(X x, Y y, Z z) { this.x = x; this.y = y; this.z = z }
//
D compute() { ... Rumpf der Methode ... }
}
class C
{
D m(X x, Y y, Z z) { M m = new M(x, y, z); return m.compute(); }
}
Das Design Pattern ist insbesondere dann nützlich, wenn die Methode sehr lang ist und nach der Umwandlung in ein Method Object mit dem Composed Method Pattern weiter untergliedert werden soll.
Quelle
http://c2.com/cgi/wiki?MethodObject
Aus
class C
{
D m(X x, Y y, Z z) { ... Rumpf der Methode ... }
}
wird
class M
{
X x;
Y y;
Z z;
//
M(X x, Y y, Z z) { this.x = x; this.y = y; this.z = z }
//
D compute() { ... Rumpf der Methode ... }
}
class C
{
D m(X x, Y y, Z z) { M m = new M(x, y, z); return m.compute(); }
}
Das Design Pattern ist insbesondere dann nützlich, wenn die Methode sehr lang ist und nach der Umwandlung in ein Method Object mit dem Composed Method Pattern weiter untergliedert werden soll.
Quelle
http://c2.com/cgi/wiki?MethodObject