ich nutze das Factory Pattern um eine bestimmte suchverhalten zu deklarieren.
Ich habe hierfür eine Schnittstelle interface Objektfind, die alle Methoden für suchverhalten A
deklariert. Die entsprechende klasse SuchklasseA implementiert diese shcnittstelle
Eine Fabrik schiesst mir ein Objekt des Typs Objektfind raus.
Mit diesem objekt kann ich nun alle methoden der definierten schnittstelle Objektfind nutzen
.... nun möchte ich aber ein zweites suchverhalten SuchklasseB anlegen und komme zu dem problem, dass die
schnittstelle nun weitere methodendeklarationen benötigt, damit ich diese nutzen kann... diese
müsste ich aber ebenfalls in der bereits existierenden SuchklasseA implementieren, die allerdings
leer stehen würden. Wie kann ich dieses problem umgehen?
bei der Verwendung von Interfaces ist es gang ung gäbe,
dass implementierende Objekte bis auf seltene Ausnahmen alle vorgegebenen Operationen sinnvoll füllen,
wenn du zwei unterschiedliche Objekttypen mit unterschiedlichen Operationen hast,
dann hat ein ein gemeinsames Interface dafür in dieser Welt nichts zu suchen,
es sei denn es beschränkt sich wieder auf die wenigen gemeinsamen Operation und die vielen individuellen tauchen nicht im Interface auf,
darüber solltest du nachdenken, mit lustigen Begriffen wie Pattern oder Factory hat das zunächst noch nix zu tun
was ist da ein Problem? für JFrame und ArrayList gibts kein gemeinsames Interface,
für Sortieralgorithmen die keine gemeinsame Operation sortieren() haben auch nicht,
aus welchem Grunde sollte es da ein Interface geben?
was ist deine Intention/ Sinn/ Zweck?
aber wenn du nun von der Factor oder auf eine andere Weise
ein Objekt
Objektfind x =..;
erhälst,
wie willst du dann eine der Operationen aufrufen, ist es egal ob das Objekt die Suche tatsächlich implementiert oder leer ist?
ist es egal ob du Hirsch oder Maus aufrufst oder rufst du immer beide auf?
kurz:
wenn man die Objekte unterschiedlich ansprechen muss, welchen Vorteil bringt dir dann das Interface?
wenn du eh auf den richtigen Typ casten musst, dann kann die Factory oder gleich Object zurückgeben
oder willst du nicht casten sondern einfach nur durch Programmwissen die richtige Operation aufrufen (sind ja beide vorhanden nur jeweils eine leer)?
klingt sehr merkwürdig
naja merke schon irgendwie ist das ein holzweg..
besser ist es wohl einfahc zwei klassen zu erstellen und in den klassen wo ich darauf zugreife diese zu instanzieren
das schöne an der factory war halt, dass ich dnan einen typen von der shcnittstelle hatte und mit dem alles machen konnte was diese schnittstelle implementiert.