Hi,
ich hab zwei fragen bzgl des Factory Pattern (benutze dieses Beispiel als Grundlage:Factory Method Pattern in Java ). Vorher paar kurze Worte zum Szenario:
Ich tue die gewisse funktionalitäten verschiedener Plugins in einer pluginwrapperclass für mein Programm wrappen. Diese implementieren ein Interface. Je nach auswahl instantiiere ich die gewünschte Wrapperclass. dachte ich lege den den wrapperclasses ne factory hin.
Nun zu den Fragen:
- Wieviel funktionalität packt man in die Factory? Sollte man es einfach nur bei der ClassErzeugung belassen? Oder gibt es bestimmte Dinge von denen auch sagt dass sie mit in die Factory übernommen werden sollen?
- "Eine Klasse muss ein Objekt erstellen, dessen Typ sie nicht im voraus wissen kann; dies ist zum Beispiel durch Interaktion mit einem User denkbar." Dieses Szenario hab ich ja, aber den Sinn verstehe ich in dem Beispiel auf der Seite nicht.
Ist mit der Aussage gemeint, dass ich während der Laufzeit z.B. sage :
und dann aber immer weiter im code auf a arbeite? z.B.:
Falls ja, könnte ich das nicht einfach mit einem generischen Typ lösen (oder vielleicht sogar nur mit einer Interfaceclass)? was wäre dann der Vorteil einer Factory?
lg
noise
ich hab zwei fragen bzgl des Factory Pattern (benutze dieses Beispiel als Grundlage:Factory Method Pattern in Java ). Vorher paar kurze Worte zum Szenario:
Ich tue die gewisse funktionalitäten verschiedener Plugins in einer pluginwrapperclass für mein Programm wrappen. Diese implementieren ein Interface. Je nach auswahl instantiiere ich die gewünschte Wrapperclass. dachte ich lege den den wrapperclasses ne factory hin.
Nun zu den Fragen:
- Wieviel funktionalität packt man in die Factory? Sollte man es einfach nur bei der ClassErzeugung belassen? Oder gibt es bestimmte Dinge von denen auch sagt dass sie mit in die Factory übernommen werden sollen?
- "Eine Klasse muss ein Objekt erstellen, dessen Typ sie nicht im voraus wissen kann; dies ist zum Beispiel durch Interaktion mit einem User denkbar." Dieses Szenario hab ich ja, aber den Sinn verstehe ich in dem Beispiel auf der Seite nicht.
Code:
AbstrakterHersteller a = new PluginWrapperClass();
Code:
if(a)
AbstrakterHersteller a = new PluginWrapperClassA();
else
AbstrakterHersteller a = new PluginWrapperClassB();
Code:
a.doThis();
a.doThat();
lg
noise