Improved comments for mediator example.

This commit is contained in:
Ilkka Seppala 2015-01-07 21:19:28 +02:00
parent 22ca6fef60
commit 742f8376b3
9 changed files with 43 additions and 12 deletions

View File

@ -1,5 +1,10 @@
package com.iluwatar;
/**
*
* Action enumeration.
*
*/
public enum Action {
HUNT, TALE, GOLD, ENEMY;

View File

@ -2,24 +2,29 @@ package com.iluwatar;
/**
*
* Mediator encapsulates how set of objects (PartyMember) interact. Instead of
* referring to each other directly they use the mediator (Party) interface.
* Mediator encapsulates how a set of objects (PartyMember) interact. Instead of
* referring to each other directly they use a mediator (Party) interface.
*
*/
public class App {
public static void main(String[] args) {
// create party and members
Party party = new PartyImpl();
Hobbit hobbit = new Hobbit();
Wizard wizard = new Wizard();
Rogue rogue = new Rogue();
Hunter hunter = new Hunter();
// add party members
party.addMember(hobbit);
party.addMember(wizard);
party.addMember(rogue);
party.addMember(hunter);
// perform actions -> the other party members
// are notified by the party
hobbit.act(Action.ENEMY);
wizard.act(Action.TALE);
rogue.act(Action.GOLD);

View File

@ -1,5 +1,10 @@
package com.iluwatar;
/**
*
* Hobbit party member.
*
*/
public class Hobbit extends PartyMemberBase {
@Override

View File

@ -1,5 +1,10 @@
package com.iluwatar;
/**
*
* Hunter party member.
*
*/
public class Hunter extends PartyMemberBase {
@Override

View File

@ -2,7 +2,7 @@ package com.iluwatar;
/**
*
* Mediator interface.
* Party interface.
*
*/
public interface Party {

View File

@ -3,6 +3,11 @@ package com.iluwatar;
import java.util.ArrayList;
import java.util.List;
/**
*
* Party implementation.
*
*/
public class PartyImpl implements Party {
private List<PartyMember> members;
@ -25,13 +30,4 @@ public class PartyImpl implements Party {
members.add(member);
member.joinedParty(this);
}
// somebody hunts for food, call for dinner
// somebody spots enemy, alert everybody
// somebody finds gold, deal the gold with everybody
// somebody tells a tale, call everybody to listen
}

View File

@ -1,5 +1,10 @@
package com.iluwatar;
/**
*
* Abstract base class for party members.
*
*/
public abstract class PartyMemberBase implements PartyMember {
protected Party party;

View File

@ -1,5 +1,10 @@
package com.iluwatar;
/**
*
* Rogue party member.
*
*/
public class Rogue extends PartyMemberBase {
@Override

View File

@ -1,5 +1,10 @@
package com.iluwatar;
/**
*
* Wizard party member.
*
*/
public class Wizard extends PartyMemberBase {
@Override