From 3bcca7102c7a26f264963c7271093d66bc92febc Mon Sep 17 00:00:00 2001 From: Ilkka Seppala Date: Sat, 2 May 2015 23:37:26 +0300 Subject: [PATCH] Completed MVC example code. --- .../src/main/java/com/iluwatar/App.java | 13 +++++- .../src/main/java/com/iluwatar/Fatigue.java | 17 ++++++++ .../java/com/iluwatar/GiantController.java | 40 +++++++++++++++++ .../main/java/com/iluwatar/GiantModel.java | 43 +++++++++++++++++++ .../src/main/java/com/iluwatar/GiantView.java | 8 ++++ .../src/main/java/com/iluwatar/Health.java | 17 ++++++++ .../main/java/com/iluwatar/Nourishment.java | 17 ++++++++ 7 files changed, 154 insertions(+), 1 deletion(-) create mode 100644 model-view-controller/src/main/java/com/iluwatar/Fatigue.java create mode 100644 model-view-controller/src/main/java/com/iluwatar/GiantController.java create mode 100644 model-view-controller/src/main/java/com/iluwatar/GiantModel.java create mode 100644 model-view-controller/src/main/java/com/iluwatar/GiantView.java create mode 100644 model-view-controller/src/main/java/com/iluwatar/Health.java create mode 100644 model-view-controller/src/main/java/com/iluwatar/Nourishment.java diff --git a/model-view-controller/src/main/java/com/iluwatar/App.java b/model-view-controller/src/main/java/com/iluwatar/App.java index 9d4f497d2..500197aed 100644 --- a/model-view-controller/src/main/java/com/iluwatar/App.java +++ b/model-view-controller/src/main/java/com/iluwatar/App.java @@ -3,6 +3,17 @@ package com.iluwatar; public class App { public static void main( String[] args ) { - System.out.println( "Hello World!" ); + // create model, view and controller + GiantModel giant = new GiantModel(Health.HEALTHY, Fatigue.ALERT, Nourishment.SATURATED); + GiantView view = new GiantView(); + GiantController controller = new GiantController(giant, view); + // initial display + controller.updateView(); + // controller receives some interactions that affect the giant + controller.setHealth(Health.WOUNDED); + controller.setNourishment(Nourishment.HUNGRY); + controller.setFatigue(Fatigue.TIRED); + // redisplay + controller.updateView(); } } diff --git a/model-view-controller/src/main/java/com/iluwatar/Fatigue.java b/model-view-controller/src/main/java/com/iluwatar/Fatigue.java new file mode 100644 index 000000000..758cf17ee --- /dev/null +++ b/model-view-controller/src/main/java/com/iluwatar/Fatigue.java @@ -0,0 +1,17 @@ +package com.iluwatar; + +public enum Fatigue { + + ALERT("alert"), TIRED("tired"), SLEEPING("sleeping"); + + private String title; + + Fatigue(String title) { + this.title = title; + } + + @Override + public String toString() { + return title; + } +} diff --git a/model-view-controller/src/main/java/com/iluwatar/GiantController.java b/model-view-controller/src/main/java/com/iluwatar/GiantController.java new file mode 100644 index 000000000..534f50167 --- /dev/null +++ b/model-view-controller/src/main/java/com/iluwatar/GiantController.java @@ -0,0 +1,40 @@ +package com.iluwatar; + +public class GiantController { + + private GiantModel giant; + private GiantView view; + + public GiantController(GiantModel giant, GiantView view) { + this.giant = giant; + this.view = view; + } + + public Health getHealth() { + return giant.getHealth(); + } + + public void setHealth(Health health) { + this.giant.setHealth(health); + } + + public Fatigue getFatigue() { + return giant.getFatigue(); + } + + public void setFatigue(Fatigue fatigue) { + this.giant.setFatigue(fatigue); + } + + public Nourishment getNourishment() { + return giant.getNourishment(); + } + + public void setNourishment(Nourishment nourishment) { + this.giant.setNourishment(nourishment); + } + + public void updateView() { + this.view.displayGiant(giant); + } +} diff --git a/model-view-controller/src/main/java/com/iluwatar/GiantModel.java b/model-view-controller/src/main/java/com/iluwatar/GiantModel.java new file mode 100644 index 000000000..dba3c9355 --- /dev/null +++ b/model-view-controller/src/main/java/com/iluwatar/GiantModel.java @@ -0,0 +1,43 @@ +package com.iluwatar; + +public class GiantModel { + + private Health health; + private Fatigue fatigue; + private Nourishment nourishment; + + GiantModel(Health health, Fatigue fatigue, Nourishment nourishment) { + this.health = health; + this.fatigue = fatigue; + this.nourishment = nourishment; + } + + public Health getHealth() { + return health; + } + + public void setHealth(Health health) { + this.health = health; + } + + public Fatigue getFatigue() { + return fatigue; + } + + public void setFatigue(Fatigue fatigue) { + this.fatigue = fatigue; + } + + public Nourishment getNourishment() { + return nourishment; + } + + public void setNourishment(Nourishment nourishment) { + this.nourishment = nourishment; + } + + @Override + public String toString() { + return String.format("The giant looks %s, %s and %s.", health, fatigue, nourishment); + } +} diff --git a/model-view-controller/src/main/java/com/iluwatar/GiantView.java b/model-view-controller/src/main/java/com/iluwatar/GiantView.java new file mode 100644 index 000000000..d33aa3344 --- /dev/null +++ b/model-view-controller/src/main/java/com/iluwatar/GiantView.java @@ -0,0 +1,8 @@ +package com.iluwatar; + +public class GiantView { + + public void displayGiant(GiantModel giant) { + System.out.println(giant); + } +} diff --git a/model-view-controller/src/main/java/com/iluwatar/Health.java b/model-view-controller/src/main/java/com/iluwatar/Health.java new file mode 100644 index 000000000..c0ad1c220 --- /dev/null +++ b/model-view-controller/src/main/java/com/iluwatar/Health.java @@ -0,0 +1,17 @@ +package com.iluwatar; + +public enum Health { + + HEALTHY("healthy"), WOUNDED("wounded"), DEAD("dead"); + + private String title; + + Health(String title) { + this.title = title; + } + + @Override + public String toString() { + return title; + } +} diff --git a/model-view-controller/src/main/java/com/iluwatar/Nourishment.java b/model-view-controller/src/main/java/com/iluwatar/Nourishment.java new file mode 100644 index 000000000..55c582a7f --- /dev/null +++ b/model-view-controller/src/main/java/com/iluwatar/Nourishment.java @@ -0,0 +1,17 @@ +package com.iluwatar; + +public enum Nourishment { + + SATURATED("saturated"), HUNGRY("hungry"), STARVING("starving"); + + private String title; + + Nourishment(String title) { + this.title = title; + } + + @Override + public String toString() { + return title; + } +}