52 lines
1.4 KiB
Java
52 lines
1.4 KiB
Java
package com.iluwatar;
|
|
|
|
import java.util.ArrayList;
|
|
|
|
|
|
/**
|
|
* Servant offers some functionality to a group of classes without defining that functionality in each of them.
|
|
* A Servant is a class whose instance provides methods that take care of a desired service,
|
|
* while objects for which the servant does something, are taken as parameters.
|
|
*
|
|
*/
|
|
public class App {
|
|
static Servant jenkins = new Servant("Jenkins");
|
|
static Servant travis = new Servant("Travis");
|
|
|
|
public static void main(String[] args) {
|
|
scenario(jenkins, 1);
|
|
scenario(travis, 0);
|
|
}
|
|
|
|
/*
|
|
* Can add a List with enum Actions for variable scenarios
|
|
* */
|
|
public static void scenario(Servant servant, int compliment) {
|
|
King k = new King();
|
|
Queen q = new Queen();
|
|
|
|
ArrayList<Royalty> guests = new ArrayList<>();
|
|
guests.add(k);
|
|
guests.add(q);
|
|
|
|
//feed
|
|
servant.feed(k);
|
|
servant.feed(q);
|
|
//serve drinks
|
|
servant.giveWine(k);
|
|
servant.giveWine(q);
|
|
//compliment
|
|
servant.GiveCompliments(guests.get(compliment));
|
|
|
|
//outcome of the night
|
|
for (Royalty r : guests)
|
|
r.changeMood();
|
|
|
|
//check your luck
|
|
if (servant.checkIfYouWillBeHanged(guests))
|
|
System.out.println(servant.name + " will live another day");
|
|
else
|
|
System.out.println("Poor " + servant.name + ". His days are numbered");
|
|
}
|
|
}
|