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