homeSoftwaredesign Softwaredesign: Beziehung: Schablonenmethode <--> Strategie Prof. Dr. Uwe Schmidt FH Wedel

Beziehung: Schablonenmethode <--> Strategie


weiter

Schema: Schablonenmethode

abstract
class X {
    abstract T1 f(...);
 
    T2 g(...) {
        ... f(...) ...;
    }
}
 
class Y extends X {
    T1 f(...) {
        ... ;
    }
}
 
X x1 = new Y(...);
 
... x1.g(...) ...
weiter
merke
Über f wird mit Hilfe von Vererbung über X variiert.
merke
Anzahl Klassen?
merke
Zur Laufzeit: Anzahl Objekte?

weiter

Schema: Strategie

class X {
    Cmd c;
 
    X(Cmd c1) { c = c1}
 
    T2 g(...) {
        ... c.f(...) ...;
    }
}
 
abstract
class Cmd {
    abstract T1 f(...);
}
 
class C1 extends Cmd {
    T1 f(...) {
        ...;
    }
}
 
X x1 = new X(new C1(),...);
 
... x1.g(...) ...
weiter
merke
Über f wird mit Hilfe von Vererbung über Cmd und einem Parameter im Konstruktor von X variiert.
merke
Anzahl Klassen?
merke
Zur Laufzeit: Anzahl Objekte?

weiter

Schema: Explizite Parameterübergabe

class X {
    T2 g(Cmd c, ...) {
        ... c.f(...) ...;
    }
}
 
abstract
class Cmd {
    abstract T1 f(...);
}
 
class C1 extends Cmd {
    T1 f(...) {
        ...;
    }
}
 
X x1 = new X(...);
 
... x1.g(new C1(), ...) ...
weiter
merke
Über f wird mit Hilfe von Vererbung über Cmd und einem zusätzlichen Parameter in g variiert.
merke
Anzahl Klassen?
merke
Zur Laufzeit: Anzahl Objekte?
merke
Vorteile gegenüber Strategie?
merke
Nachteile gegenüber Strategie?
merke
Nachteile gegenüber Strategie?

Letzte Änderung: 20.06.2013
© Prof. Dr. Uwe Schmidt
Prof. Dr. Uwe Schmidt FH Wedel