File tree Expand file tree Collapse file tree 9 files changed +43
-12
lines changed
mediator/src/main/java/com/iluwatar Expand file tree Collapse file tree 9 files changed +43
-12
lines changed Original file line number Diff line number Diff line change 11package com .iluwatar ;
22
3+ /**
4+ *
5+ * Action enumeration.
6+ *
7+ */
38public enum Action {
49
510 HUNT , TALE , GOLD , ENEMY ;
Original file line number Diff line number Diff line change 22
33/**
44 *
5- * Mediator encapsulates how set of objects (PartyMember) interact. Instead of
6- * referring to each other directly they use the mediator (Party) interface.
5+ * Mediator encapsulates how a set of objects (PartyMember) interact. Instead of
6+ * referring to each other directly they use a mediator (Party) interface.
77 *
88 */
99public class App {
1010
1111 public static void main (String [] args ) {
12+
13+ // create party and members
1214 Party party = new PartyImpl ();
1315 Hobbit hobbit = new Hobbit ();
1416 Wizard wizard = new Wizard ();
1517 Rogue rogue = new Rogue ();
1618 Hunter hunter = new Hunter ();
1719
20+ // add party members
1821 party .addMember (hobbit );
1922 party .addMember (wizard );
2023 party .addMember (rogue );
2124 party .addMember (hunter );
2225
26+ // perform actions -> the other party members
27+ // are notified by the party
2328 hobbit .act (Action .ENEMY );
2429 wizard .act (Action .TALE );
2530 rogue .act (Action .GOLD );
Original file line number Diff line number Diff line change 11package com .iluwatar ;
22
3+ /**
4+ *
5+ * Hobbit party member.
6+ *
7+ */
38public class Hobbit extends PartyMemberBase {
49
510 @ Override
Original file line number Diff line number Diff line change 11package com .iluwatar ;
22
3+ /**
4+ *
5+ * Hunter party member.
6+ *
7+ */
38public class Hunter extends PartyMemberBase {
49
510 @ Override
Original file line number Diff line number Diff line change 22
33/**
44 *
5- * Mediator interface.
5+ * Party interface.
66 *
77 */
88public interface Party {
Original file line number Diff line number Diff line change 33import java .util .ArrayList ;
44import java .util .List ;
55
6+ /**
7+ *
8+ * Party implementation.
9+ *
10+ */
611public class PartyImpl implements Party {
712
813 private List <PartyMember > members ;
@@ -25,13 +30,4 @@ public void addMember(PartyMember member) {
2530 members .add (member );
2631 member .joinedParty (this );
2732 }
28-
29- // somebody hunts for food, call for dinner
30-
31- // somebody spots enemy, alert everybody
32-
33- // somebody finds gold, deal the gold with everybody
34-
35- // somebody tells a tale, call everybody to listen
36-
3733}
Original file line number Diff line number Diff line change 11package com .iluwatar ;
22
3+ /**
4+ *
5+ * Abstract base class for party members.
6+ *
7+ */
38public abstract class PartyMemberBase implements PartyMember {
49
510 protected Party party ;
Original file line number Diff line number Diff line change 11package com .iluwatar ;
22
3+ /**
4+ *
5+ * Rogue party member.
6+ *
7+ */
38public class Rogue extends PartyMemberBase {
49
510 @ Override
Original file line number Diff line number Diff line change 11package com .iluwatar ;
22
3+ /**
4+ *
5+ * Wizard party member.
6+ *
7+ */
38public class Wizard extends PartyMemberBase {
49
510 @ Override
You can’t perform that action at this time.
0 commit comments