DesignFrage FactoryPattern

Status
Nicht offen für weitere Antworten.

noisebreath

Bekanntes Mitglied
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.
Code:
AbstrakterHersteller a = new PluginWrapperClass();
Ist mit der Aussage gemeint, dass ich während der Laufzeit z.B. sage :
Code:
if(a)
AbstrakterHersteller a = new PluginWrapperClassA();
else
AbstrakterHersteller a = new PluginWrapperClassB();
und dann aber immer weiter im code auf a arbeite? z.B.:
Code:
a.doThis();
a.doThat();
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
 
S

SlaterB

Gast
das Pattern verbietet nicht, dass die Klasse auch andere Aufgaben übernimmt,
darüber sollte allein deine Sicht von Codestruktur/ Ordnung/ Trennung von Aufgaben usw. entscheiden,
allgemein ist es fraglich, aber nicht ausgeschlossen,

----

das mit dem generischen Typ musst du genauer erklären

-----

> "Eine Klasse muss ein Objekt erstellen, dessen Typ sie nicht im voraus wissen kann; dies ist zum Beispiel durch Interaktion mit einem User denkbar."

habe ich nicht auf der verlinkten Seite gefunden, geht's um die Factory oder den Aufrufer?
wieso kommt da User-Interaktion ins Spiel?
 
Zuletzt bearbeitet von einem Moderator:

noisebreath

Bekanntes Mitglied
ja der Satz ist von einer anderen Seite. User Interaktion kommt ins Spiel weil über einem Wizard abgefragt wird welches Plugin benutzt werden soll.
Aber hab ich die Anwendung des factory patterns richtig verstanden?
 
S

SlaterB

Gast
wie soll ich das beurteilen, wenn du nichts zu deinem Verständnis erklärst, sondern nur 3 Fragen stellst,
von denen eine wie gesagt wenig mit dem Pattern zu tun hat und von denen ich die anderen beiden wie gesagt nicht verstehe?
 

Shai

Aktives Mitglied
oki aber ich meine von der nutzung des patterns wie ichs in den beispielen angegeben habe. das man dann nur noch auf dem a Objekt weiterarbeitet etc
 
S

SlaterB

Gast
ganz ok, mich verwundern jetzt aber immer noch stark die unterschiedlichen Benutzernamen
 

noisebreath

Bekanntes Mitglied
arbeite hier grad nicht alleine. mein kollege ist auch immer wieder an meinem Pc und ich hab nicht gemerkt dass er noch eingeloggt war.

der grund warum ich gefragt hatte war das er mir beim zugriff auf methoden gemeckert hatte, aber das war mein fehler den hab ich ausgebügelt :D

aber grundsätzlich ist der hauptgrund einer factory doch der dass ich dann einfach auf dem a objekt weiterarbeiten kann oder !? dementsprechend muesste zusätzliche funktionalität für die factory wie du gesagt hast nur meine entscheidung sein falls es sinnvoll ist, richtg?
 
S

SlaterB

Gast
der Hauptgrund ist, dass das if irgendwo codiert werden muss, irgendjemand muss entscheiden, ob die eine Klasse oder die andere instanziiert wird,
das ist der eine Punkt und dazu kommt noch die allgemeine Grundlage, keinen Code unnötig zu wiederholen
-> Code mit dem if in eine spezielle Methode oder Klasse auslagern

etwas komplizierter wirds, wenn man statt einfacher if/else die Arbeit (der Entscheidung) an Unterklassen übergeben will,
dann kommt man mit Methoden nicht mehr so weit, dann eben Klassen

das wars schon, alles andere ist nur Spielerei und hochtrabende Benennung in schicken 'Pattern'
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben