diff --git a/src/headfirst/designpatterns/facade/hometheater/Amplifier.java b/src/headfirst/designpatterns/facade/hometheater/Amplifier.java index ba0da133..41ace9d9 100755 --- a/src/headfirst/designpatterns/facade/hometheater/Amplifier.java +++ b/src/headfirst/designpatterns/facade/hometheater/Amplifier.java @@ -31,7 +31,7 @@ public void setVolume(int level) { } public void setTuner(Tuner tuner) { - System.out.println(description + " setting tuner to " + dvd); + System.out.println(description + " setting tuner to " + tuner); this.tuner = tuner; } diff --git a/src/headfirst/designpatterns/facade/hometheater/HomeTheaterFacade.java b/src/headfirst/designpatterns/facade/hometheater/HomeTheaterFacade.java index 627243b6..45e7fef7 100755 --- a/src/headfirst/designpatterns/facade/hometheater/HomeTheaterFacade.java +++ b/src/headfirst/designpatterns/facade/hometheater/HomeTheaterFacade.java @@ -72,7 +72,6 @@ public void listenToCd(String cdTitle) { public void endCd() { System.out.println("Shutting down CD..."); amp.off(); - amp.setCd(cd); cd.eject(); cd.off(); } diff --git a/src/headfirst/designpatterns/facade/hometheater/Tuner.java b/src/headfirst/designpatterns/facade/hometheater/Tuner.java index c68dc30c..b559bed8 100755 --- a/src/headfirst/designpatterns/facade/hometheater/Tuner.java +++ b/src/headfirst/designpatterns/facade/hometheater/Tuner.java @@ -7,6 +7,7 @@ public class Tuner { public Tuner(String description, Amplifier amplifier) { this.description = description; + this.amplifier = amplifier; } public void on() { diff --git a/src/headfirst/designpatterns/strategyPattern/game/AxeBehavior.java b/src/headfirst/designpatterns/strategyPattern/game/AxeBehavior.java new file mode 100644 index 00000000..313657f5 --- /dev/null +++ b/src/headfirst/designpatterns/strategyPattern/game/AxeBehavior.java @@ -0,0 +1,11 @@ +package game1; + +public class AxeBehavior implements WeaponBehavior { + + @Override + public void useWeapon() { + // TODO Auto-generated method stub + System.out.println("chopping with an axe"); + } + +} diff --git a/src/headfirst/designpatterns/strategyPattern/game/BowAndArrowBehavior.java b/src/headfirst/designpatterns/strategyPattern/game/BowAndArrowBehavior.java new file mode 100644 index 00000000..8ca03d94 --- /dev/null +++ b/src/headfirst/designpatterns/strategyPattern/game/BowAndArrowBehavior.java @@ -0,0 +1,11 @@ +package game1; + +public class BowAndArrowBehavior implements WeaponBehavior { + + @Override + public void useWeapon() { + // TODO Auto-generated method stub + System.out.println("shooting with an arrow and a bow"); + } + +} diff --git a/src/headfirst/designpatterns/strategyPattern/game/Character.java b/src/headfirst/designpatterns/strategyPattern/game/Character.java new file mode 100644 index 00000000..eafca8f1 --- /dev/null +++ b/src/headfirst/designpatterns/strategyPattern/game/Character.java @@ -0,0 +1,17 @@ +package game1; + +public abstract class Character { + WeaponBehavior weapon; + + public void setWeapon(WeaponBehavior w){ + this.weapon = w; + } + + public void performUseWeapon() { + weapon.useWeapon(); + } + + public void fight() { + + } +} diff --git a/src/headfirst/designpatterns/strategyPattern/game/GameStart.java b/src/headfirst/designpatterns/strategyPattern/game/GameStart.java new file mode 100644 index 00000000..8988169d --- /dev/null +++ b/src/headfirst/designpatterns/strategyPattern/game/GameStart.java @@ -0,0 +1,24 @@ +package game1; + +public class GameStart { + + public static void main(String[] args) { + // TODO Auto-generated method stub + Character character1 = new Queen(); + character1.performUseWeapon(); + character1.fight(); + + Character character2 = new King(); + character2.performUseWeapon(); + character2.fight(); + + Character character3 = new Troll(); + character3.performUseWeapon(); + character3.fight(); + + Character character4 = new Knight(); + character4.performUseWeapon(); + character4.fight(); + } + +} diff --git a/src/headfirst/designpatterns/strategyPattern/game/King.java b/src/headfirst/designpatterns/strategyPattern/game/King.java new file mode 100644 index 00000000..92f49eb1 --- /dev/null +++ b/src/headfirst/designpatterns/strategyPattern/game/King.java @@ -0,0 +1,11 @@ +package game1; + +public class King extends Character { + public King() { + weapon = new SwordBehavior(); + } + + public void fight() { + System.out.println("King is fighting"); + } +} diff --git a/src/headfirst/designpatterns/strategyPattern/game/KnifeBehavior.java b/src/headfirst/designpatterns/strategyPattern/game/KnifeBehavior.java new file mode 100644 index 00000000..a2ddc806 --- /dev/null +++ b/src/headfirst/designpatterns/strategyPattern/game/KnifeBehavior.java @@ -0,0 +1,11 @@ +package game1; + +public class KnifeBehavior implements WeaponBehavior { + + public void useWeapon() { + // TODO Auto-generated method stub + System.out.println("cutting with a knife"); + + } + +} diff --git a/src/headfirst/designpatterns/strategyPattern/game/Knight.java b/src/headfirst/designpatterns/strategyPattern/game/Knight.java new file mode 100644 index 00000000..1e12e303 --- /dev/null +++ b/src/headfirst/designpatterns/strategyPattern/game/Knight.java @@ -0,0 +1,11 @@ +package game1; + +public class Knight extends Character { + public Knight() { + weapon = new KnifeBehavior(); + } + + public void fight() { + System.out.println("Knight is fighting"); + } +} diff --git a/src/headfirst/designpatterns/strategyPattern/game/Queen.java b/src/headfirst/designpatterns/strategyPattern/game/Queen.java new file mode 100644 index 00000000..69ef9900 --- /dev/null +++ b/src/headfirst/designpatterns/strategyPattern/game/Queen.java @@ -0,0 +1,12 @@ +package game1; + +public class Queen extends Character { + + public Queen() { + weapon = new BowAndArrowBehavior(); + } + + public void fight() { + System.out.println("Queen is fighting"); + } +} diff --git a/src/headfirst/designpatterns/strategyPattern/game/SwordBehavior.java b/src/headfirst/designpatterns/strategyPattern/game/SwordBehavior.java new file mode 100644 index 00000000..409f0fb8 --- /dev/null +++ b/src/headfirst/designpatterns/strategyPattern/game/SwordBehavior.java @@ -0,0 +1,11 @@ +package game1; + +public class SwordBehavior implements WeaponBehavior { + + @Override + public void useWeapon() { + // TODO Auto-generated method stub + System.out.println("swinging a sword"); + } + +} diff --git a/src/headfirst/designpatterns/strategyPattern/game/Troll.java b/src/headfirst/designpatterns/strategyPattern/game/Troll.java new file mode 100644 index 00000000..05ee8a1f --- /dev/null +++ b/src/headfirst/designpatterns/strategyPattern/game/Troll.java @@ -0,0 +1,11 @@ +package game1; + +public class Troll extends Character { + public Troll() { + weapon = new AxeBehavior(); + } + + public void fight() { + System.out.println("Troll is fighting"); + } +} diff --git a/src/headfirst/designpatterns/strategyPattern/game/WeaponBehavior.java b/src/headfirst/designpatterns/strategyPattern/game/WeaponBehavior.java new file mode 100644 index 00000000..1e210fdc --- /dev/null +++ b/src/headfirst/designpatterns/strategyPattern/game/WeaponBehavior.java @@ -0,0 +1,5 @@ +package game1; + +public interface WeaponBehavior { + public void useWeapon(); +}