Improved comments for mediator example.
This commit is contained in:
parent
22ca6fef60
commit
742f8376b3
@ -1,5 +1,10 @@
|
|||||||
package com.iluwatar;
|
package com.iluwatar;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* Action enumeration.
|
||||||
|
*
|
||||||
|
*/
|
||||||
public enum Action {
|
public enum Action {
|
||||||
|
|
||||||
HUNT, TALE, GOLD, ENEMY;
|
HUNT, TALE, GOLD, ENEMY;
|
||||||
|
@ -2,24 +2,29 @@ package com.iluwatar;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* Mediator encapsulates how set of objects (PartyMember) interact. Instead of
|
* Mediator encapsulates how a set of objects (PartyMember) interact. Instead of
|
||||||
* referring to each other directly they use the mediator (Party) interface.
|
* referring to each other directly they use a mediator (Party) interface.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public class App {
|
public class App {
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
|
|
||||||
|
// create party and members
|
||||||
Party party = new PartyImpl();
|
Party party = new PartyImpl();
|
||||||
Hobbit hobbit = new Hobbit();
|
Hobbit hobbit = new Hobbit();
|
||||||
Wizard wizard = new Wizard();
|
Wizard wizard = new Wizard();
|
||||||
Rogue rogue = new Rogue();
|
Rogue rogue = new Rogue();
|
||||||
Hunter hunter = new Hunter();
|
Hunter hunter = new Hunter();
|
||||||
|
|
||||||
|
// add party members
|
||||||
party.addMember(hobbit);
|
party.addMember(hobbit);
|
||||||
party.addMember(wizard);
|
party.addMember(wizard);
|
||||||
party.addMember(rogue);
|
party.addMember(rogue);
|
||||||
party.addMember(hunter);
|
party.addMember(hunter);
|
||||||
|
|
||||||
|
// perform actions -> the other party members
|
||||||
|
// are notified by the party
|
||||||
hobbit.act(Action.ENEMY);
|
hobbit.act(Action.ENEMY);
|
||||||
wizard.act(Action.TALE);
|
wizard.act(Action.TALE);
|
||||||
rogue.act(Action.GOLD);
|
rogue.act(Action.GOLD);
|
||||||
|
@ -1,5 +1,10 @@
|
|||||||
package com.iluwatar;
|
package com.iluwatar;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* Hobbit party member.
|
||||||
|
*
|
||||||
|
*/
|
||||||
public class Hobbit extends PartyMemberBase {
|
public class Hobbit extends PartyMemberBase {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -1,5 +1,10 @@
|
|||||||
package com.iluwatar;
|
package com.iluwatar;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* Hunter party member.
|
||||||
|
*
|
||||||
|
*/
|
||||||
public class Hunter extends PartyMemberBase {
|
public class Hunter extends PartyMemberBase {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -2,7 +2,7 @@ package com.iluwatar;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* Mediator interface.
|
* Party interface.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public interface Party {
|
public interface Party {
|
||||||
|
@ -3,6 +3,11 @@ package com.iluwatar;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* Party implementation.
|
||||||
|
*
|
||||||
|
*/
|
||||||
public class PartyImpl implements Party {
|
public class PartyImpl implements Party {
|
||||||
|
|
||||||
private List<PartyMember> members;
|
private List<PartyMember> members;
|
||||||
@ -25,13 +30,4 @@ public class PartyImpl implements Party {
|
|||||||
members.add(member);
|
members.add(member);
|
||||||
member.joinedParty(this);
|
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
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,10 @@
|
|||||||
package com.iluwatar;
|
package com.iluwatar;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* Abstract base class for party members.
|
||||||
|
*
|
||||||
|
*/
|
||||||
public abstract class PartyMemberBase implements PartyMember {
|
public abstract class PartyMemberBase implements PartyMember {
|
||||||
|
|
||||||
protected Party party;
|
protected Party party;
|
||||||
|
@ -1,5 +1,10 @@
|
|||||||
package com.iluwatar;
|
package com.iluwatar;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* Rogue party member.
|
||||||
|
*
|
||||||
|
*/
|
||||||
public class Rogue extends PartyMemberBase {
|
public class Rogue extends PartyMemberBase {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -1,5 +1,10 @@
|
|||||||
package com.iluwatar;
|
package com.iluwatar;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* Wizard party member.
|
||||||
|
*
|
||||||
|
*/
|
||||||
public class Wizard extends PartyMemberBase {
|
public class Wizard extends PartyMemberBase {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
Loading…
x
Reference in New Issue
Block a user