Factory Methode

Gast #2675914
Lesenswert?

Guten Tat,

Ich habe ein Problem und zwar soll ich eine Factory Methode erstellen, 
allerdings komm ich einfach nicht drauf, eclipse gibt mir andauernd die 
Meldung cannot instatiate the type

public class SortFactory {
  public static ISort<Integer> create() {
    ISort<Integer> fabric = new ISort<Integer>();
  }
}

Jemand ne Idee wie ich das hinkriegen könnte? :/


MfG
#2676597
Lesenswert?

Du musst in deiner Klasse alles implementieren, was die enthaltenen 
Interfaces brauchen.
Das ist also hier aus ISort die sort()-Methode, sowie ggf. das, was 
Comparable noch braucht (wird wohl compare() sein).

Ansonsten kann man bei deiner dürftigen Beschreibung nur raten, also 
kommt dann natürlich der beliebte Rat "Hausaufgaben selber machen!"
#2676628
Lesenswert?

Wenn ich mal meine Glaskugel auspacke:
Du sollst eine Factory implementieren, die ein Sortierobjekt 
zurückliefert.

Eine Factory benötigt man dann, wenn man abhängig von einem/mehreren 
Parameter(n) unterschiedliche Implementierungen einer Sache erzeugen 
will. In deinem Beispiel also z.B. ein BubbleSort, ein Quicksort, ein 
InsertionSort, ein MergeSort, ....
Damit man diese Sorts universell verwenden kann haben alle die gleiche 
Schnittstelle, nämlich das Interface "ISort"!

Du musst also folgendes implementieren:
Eine MergeSort Klasse die ISort implementiert.
Eine Factoryklasse, die eine (oft statische) Methode hat um abhängig von 
irgendwelchen Kriterien deine gewünschte Sortierklasse erzeugt (Also in 
Ermangelung weiterer Sortklassen eine MergeSort Klasse und zurückgibt, 
und zwar als ISort Objekt.

Jetzt solltest du in der Lage sein dein Problem zu lösen, ansonsten kann 
ich dir "Java ist auch eine Insel" empfehlen, gibts auch als Online 
Buch.
#2676746
Lesenswert?

Salome schrieb:
> Wie meinst du das wo das steht?

Woher sollen wir das denn wissen?
Woher sollen wir wissen, was du alles geschrieben hast und was nicht?
Woher sollen wir wissen, wie diese Klasse aussieht?

Stell dir einfach vor, du hättest von deinem Problem noch nie etwas 
gehört und weißt auch sonst nichts darüber. Lies dir deine 
Beschreibungen durch. Könntest du damit irgendetwas anfangen?
Gast #2676767
Lesenswert?

Wenn die Aufgabe lautet implementieren sie zuerst die Fabrikmethode, 
damit die Junit tests laufen und man die Methoden erst danach erstellen 
soll, damit mans testen kann, dann hab ich am anfang nur das Interface 
und das gerüst der fabrikmethode

nur weil ich das nicht hinbekommen habe, hab ich zuerst die metthode 
gemacht, mein mergesort, nur kann ich sie jetzt halt nicht testen, 
deswegen spielts auch keine rolle, wie mein mergesort aussieht, weil die 
fabrikmethode hätt ich ganz zu anfang erstellen sollen und brauch ich 
nur für den junit test

@Before public void setup()
  {
    sort = SortFactory.create();
  }

die ersten zeilen im test und hier stopps halt auch schon


ausserdem hast du meine Frage komplett aus dem zusammenhang gerissen, 
ist mir auch klar dass ihr keine hellseher seid, aber mehr konnt ich 
nicht liefern, weil mehr wurd nicht vorgegeben.

danke an alle die helfen wollten
ich bin dann mal raus
#2676788
Lesenswert?

Salome schrieb:

> ausserdem hast du meine Frage komplett aus dem zusammenhang gerissen,

Das was du 'Zusammenhang' nennst, reicht aber nicht um dein wirkliches 
Problem zu beheben.

Eine Analogie:
Natürlich kann man sagen, dass ein Nylonfaden gerissen ist und durch 
eine andere Kordel ersetzt werden muss.
Solange man aber nicht weiß, dass du eine Lokomotive aufhängen willst, 
wird das alles nichts nützen.
Das Problem ist nicht, dass der Nylonfaden einen Materialfehler hatte. 
Das Problem ist die Lokomotive. Du redest hier aber immer nur vom 
Nylonfaden. Ergo: keiner kann dir weiterhelfen und darüber beschwerst du 
dich, anstatt das du einfach mal alle Karten auf den Tisch legst. Oder 
denkst du dein Mergesort wäre so wahnsinnig hi-tech und wir hätten noch 
nie einen gesehen?
#2676789
Lesenswert?

Salome schrieb:
> ich bin dann mal raus

Gut dann muss ich auch nichts mehr schreiben.

Ein offenes Posten von
1. Der Info daß es eine Hausaufgabe ist
2. Was konkret nicht funktioniert
3. Was du schon gemacht hast
4. Der Aufgabenstellung INCLUSIVE dem Testaufruf

hätte gereicht daß wir dir entsprechende Hinweise zum eigenen 
Verständnis hätten geben können.

Aber immer wieder diese 'scheiß Salamitaktik'
Gast #2676817
Lesenswert?

Jo, sry dass ich anfänger bin und nicht gleich alles auf anhieb verstehe 
und die zusammenhänge noch nicht immer gleich sofort sehe, hätte ich 
gewusst woran es liegt hätte ich das interface und die methode gleich 
mitgepostet, wollte aber unnötiges weglassen, das hat nix mit 
salamitaktik zu tun, sondern damit, dass ich nicht unnötigerweise alles 
posten wollte wegen einem kleinen fehler (in meinen augen, war ja 
verkehrt, i am sry)...

das man sich deswegen gleich echauffieren muss, das hat mir grad die 
lust geraubt, ich frag ned in nem forum um mich dann anmachen zu lassen 
nur weil ich was falsch gemacht hab

Karl Heinz Buchegger schrieb:
> Ergo: keiner kann dir weiterhelfen und darüber beschwerst du
> dich, anstatt das du einfach mal alle Karten auf den Tisch legst. Oder
> denkst du dein Mergesort wäre so wahnsinnig hi-tech und wir hätten noch
> nie einen gesehen?

genau, deswegen hab ich hier gefrat, weil ich euch ja alle für unfähig 
halte

ausserdem hab ich mich nirgends beschwert, dass man mir nicht hilf, der 
grund weshalb mir die lust vergangen ist, ist dass man gleich angefahren 
wird, weil man n fehler macht, deswegen hab ich geschrieben "ich bin 
dann mal raus" und aus keinem andern grund. einige hinweise hab ich ja 
durchaus bekommen und dafür hab ich mich auch bedankt

wünsch euch trotzdem noch n schönen tag
#2677005
Lesenswert?

Salome schrieb:

> das man sich deswegen gleich echauffieren muss, das hat mir grad die
> lust geraubt, ich frag ned in nem forum um mich dann anmachen zu lassen
> nur weil ich was falsch gemacht hab

Deswegen hat dich keiner angemacht.
Aber wenn du auch nach dem 3.ten zarten Hinweis, doch endlich mal den 
kompletten Code zu zeigen, immer noch nicht kapierst, dann ist dir wohl 
wirklich nicht zu helfen.
Du rufst ja auch nicht beim Arzt an und sagst: Es tut weh. Was kann mich 
dagegen tun?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren