Skip to content
Snippets Groups Projects
Commit ff7d6842 authored by Peter Hertkorn's avatar Peter Hertkorn
Browse files

Fix

parent 144cbe91
No related branches found
No related tags found
No related merge requests found
Showing
with 197 additions and 4 deletions
......@@ -6,10 +6,12 @@ import aliensimulator.aliens.*;
import aliensimulator.predators.Predator;
import aliensimulator.predators.PredatorFactory;
import aliensimulator.predators.Yautja;
import aliensimulator.ufos.AlienUfoFactory;
import aliensimulator.ufos.PredatorUfoFactory;
import aliensimulator.ufos.Ufo;
import aliensimulator.ufos.UfoFactory;
import aliensimulator.ufos.komponenten.AlienKomponentenFabrik;
import aliensimulator.ufos.komponenten.AlienUfoFactory;
import aliensimulator.ufos.komponenten.PredatorKomponentenFabrik;
import aliensimulator.verhalten.ErdeFreundlichBesuchen;
import aliensimulator.verhalten.ErdeNeutralAdapter;
......@@ -62,13 +64,13 @@ public class AlienSimulator {
yautja.fliegen();
yautja.erdeBesuchen();
UfoFactory alienUfoFactory = new AlienUfoFactory();
UfoFactory alienUfoFactory = new AlienUfoFactory(new AlienKomponentenFabrik());
Ufo alienSternenkreuzer = alienUfoFactory.createUfo("sternenkreuzer");
System.out.println(alienSternenkreuzer);
Ufo alienTransportschiff = alienUfoFactory.createUfo("transportschiff");
System.out.println(alienTransportschiff);
UfoFactory predatorUfoFactory = new PredatorUfoFactory();
UfoFactory predatorUfoFactory = new PredatorUfoFactory(new PredatorKomponentenFabrik());
Ufo predatorSternenkreuzer = predatorUfoFactory.createUfo("sternenkreuzer");
System.out.println(predatorSternenkreuzer);
Ufo predatorTransportschiff = predatorUfoFactory.createUfo("transportschiff");
......
......@@ -4,10 +4,15 @@ import aliensimulator.ufos.komponenten.KomponentenFabrik;
import aliensimulator.ufos.komponenten.PredatorKomponentenFabrik;
public class PredatorUfoFactory implements UfoFactory {
private KomponentenFabrik komponentenFabrik;
public PredatorUfoFactory(KomponentenFabrik komponentenFabrik) {
this.komponentenFabrik = komponentenFabrik;
}
@Override
public Ufo createUfo(String type) {
Ufo ufo = null;
KomponentenFabrik komponentenFabrik = new PredatorKomponentenFabrik();
switch (type) {
case "sternenkreuzer" :
......
package aliensimulator.ufos;
public interface UfoFactory {
public Ufo createUfo(String type);
}
package aliensimulator.ufos.komponenten;
public class AlienKomponentenFabrik implements KomponentenFabrik {
@Override
public Antrieb createAntrieb() {
return new Hyperantrieb();
}
@Override
public Schild createSchild() {
return new Verteidigungsschild();
}
@Override
public Waffe createWaffe() {
return new Phaserkanone();
}
}
package aliensimulator.ufos.komponenten;
import aliensimulator.ufos.Sternenkreuzer;
import aliensimulator.ufos.Transportschiff;
import aliensimulator.ufos.Ufo;
import aliensimulator.ufos.UfoFactory;
public class AlienUfoFactory implements UfoFactory {
private KomponentenFabrik komponentenFabrik;
public AlienUfoFactory(KomponentenFabrik komponentenFabrik) {
this.komponentenFabrik = komponentenFabrik;
}
@Override
public Ufo createUfo(String type) {
Ufo ufo = null;
switch (type) {
case "sternenkreuzer" :
ufo = new Sternenkreuzer(komponentenFabrik);
ufo.setName("Alien Sternenkreuzer");
ufo.herstellen();
break;
case "transportschiff" :
ufo = new Transportschiff(komponentenFabrik);
ufo.setName("Alien Transportschiff");
ufo.herstellen();
break;
}
return ufo;
}
}
package aliensimulator.ufos.komponenten;
public interface Antrieb {
public String toString();
}
package aliensimulator.ufos.komponenten;
public class Hyperantrieb implements Antrieb {
@Override
public String toString() {
return "Hyperantrieb";
}
}
package aliensimulator.ufos.komponenten;
public interface KomponentenFabrik {
public Antrieb createAntrieb();
public Schild createSchild();
public Waffe createWaffe();
}
package aliensimulator.ufos.komponenten;
public class Laserkanone implements Waffe {
@Override
public String toString() {
return "Laserkanone";
}
}
\ No newline at end of file
package aliensimulator.ufos.komponenten;
public class Metaphasenschild implements Schild {
@Override
public String toString() {
return "Metaphasenschild";
}
}
\ No newline at end of file
package aliensimulator.ufos.komponenten;
public class Phaserkanone implements Waffe {
@Override
public String toString() {
return "Phaserkanone";
}
}
\ No newline at end of file
package aliensimulator.ufos.komponenten;
public class PredatorKomponentenFabrik implements KomponentenFabrik {
@Override
public Antrieb createAntrieb() {
return new Warpantrieb();
}
@Override
public Schild createSchild() {
return new Metaphasenschild();
}
@Override
public Waffe createWaffe() {
return new Laserkanone();
}
}
package aliensimulator.ufos.komponenten;
import aliensimulator.ufos.Sternenkreuzer;
import aliensimulator.ufos.Transportschiff;
import aliensimulator.ufos.Ufo;
import aliensimulator.ufos.UfoFactory;
public class PredatorUfoFactory implements UfoFactory {
private KomponentenFabrik komponentenFabrik;
public PredatorUfoFactory(KomponentenFabrik komponentenFabrik) {
this.komponentenFabrik = komponentenFabrik;
}
@Override
public Ufo createUfo(String type) {
Ufo ufo = null;
switch (type) {
case "sternenkreuzer" :
ufo = new Sternenkreuzer(komponentenFabrik);
ufo.setName("Predator Sternenkreuzer");
ufo.herstellen();
break;
case "transportschiff" :
ufo = new Transportschiff(komponentenFabrik);
ufo.setName("Predator Transportschiff");
ufo.herstellen();
break;
}
return ufo;
}
}
package aliensimulator.ufos.komponenten;
public interface Schild {
public String toString();
}
package aliensimulator.ufos.komponenten;
public class Verteidigungsschild implements Schild {
@Override
public String toString() {
return "Verteidigungsschild";
}
}
\ No newline at end of file
package aliensimulator.ufos.komponenten;
public interface Waffe {
public String toString();
}
package aliensimulator.ufos.komponenten;
public class Warpantrieb implements Antrieb {
@Override
public String toString() {
return "Warpantrieb";
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment