diff --git a/src/aliensimulator/AlienAdapter.java b/src/aliensimulator/AlienAdapter.java new file mode 100644 index 0000000000000000000000000000000000000000..809454fd954d73d9ef4e1b3ed88c50227e8651a5 --- /dev/null +++ b/src/aliensimulator/AlienAdapter.java @@ -0,0 +1,23 @@ +package aliensimulator; + +import aliens_3rdparty.AlienFromNY; + +public class AlienAdapter extends Alien { + + private AlienFromNY alienFromNY; + + public AlienAdapter(AlienFromNY alienNY) { + this.alienFromNY = alienNY; + erdeBesuchverhalten = new ErdeZerstoererischAdapter(); + } + + @Override + public void darstellen() { + alienFromNY.show(); + } + + @Override + public void fliegen() { + alienFromNY.fly(); + } +} diff --git a/src/aliensimulator/AlienSimulator.java b/src/aliensimulator/AlienSimulator.java index 68a94e55ca356b22c3b1113197af7bcd516d16c9..45145350bd574b8c466378125b7044522a8cebab 100644 --- a/src/aliensimulator/AlienSimulator.java +++ b/src/aliensimulator/AlienSimulator.java @@ -1,5 +1,8 @@ package aliensimulator; +import aliens_3rdparty.AlienFromNY; +import aliens_3rdparty.NeutralBesuchen; + public class AlienSimulator { public static void main(String[] args) { @@ -23,5 +26,14 @@ public class AlienSimulator { alienVenus.darstellen(); alienVenus.fliegen(); alienVenus.erdeBesuchen(); + + Alien alienFromNY = new AlienAdapter(new AlienFromNY()); + alienFromNY.darstellen(); + alienFromNY.fliegen(); + System.out.println("Verhalten vom Alien von NY VOR der Änderung seines Verhaltens:"); + alienFromNY.erdeBesuchen(); + alienFromNY.setErdeBesuchverhalten(new ErdeNeutralAdapter(new NeutralBesuchen())); + System.out.println("Verhalten vom Alien von NY NACH der Änderung seines Verhaltens:"); + alienFromNY.erdeBesuchen(); } } diff --git a/src/aliensimulator/ErdeNeutralAdapter.java b/src/aliensimulator/ErdeNeutralAdapter.java new file mode 100644 index 0000000000000000000000000000000000000000..c9ed2752a82f95fb4ed9407f5d7b23b91a1ff0d2 --- /dev/null +++ b/src/aliensimulator/ErdeNeutralAdapter.java @@ -0,0 +1,17 @@ +package aliensimulator; + +import aliens_3rdparty.NeutralBesuchen; + +public class ErdeNeutralAdapter implements ErdeBesuchverhalten { + + private NeutralBesuchen neutralBesuchen; + + public ErdeNeutralAdapter(NeutralBesuchen neutralBesuchen) { + this.neutralBesuchen = neutralBesuchen; + } + + @Override + public void erdeBesuchen() { + neutralBesuchen.abwarten(); + } +} diff --git a/src/aliensimulator/ErdeZerstoererischAdapter.java b/src/aliensimulator/ErdeZerstoererischAdapter.java new file mode 100644 index 0000000000000000000000000000000000000000..0f0c04d9bddf6dfeba621e98238897c5c33a537b --- /dev/null +++ b/src/aliensimulator/ErdeZerstoererischAdapter.java @@ -0,0 +1,11 @@ +package aliensimulator; + +import aliens_3rdparty.ZerstoererischBesuchen; + +public class ErdeZerstoererischAdapter extends ZerstoererischBesuchen implements ErdeBesuchverhalten { + + @Override + public void erdeBesuchen() { + zerstoere(); + } +}