Skip to content

Commit 4b432a7

Browse files
committed
[refactor] Remove unnecessary declarations in servant pattern.
1 parent 300c8df commit 4b432a7

File tree

4 files changed

+110
-102
lines changed

4 files changed

+110
-102
lines changed

servant/src/main/java/com/iluwatar/App.java

Lines changed: 39 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -4,50 +4,48 @@
44

55

66
/**
7-
* Servant offers some functionality to a group of classes without defining that functionality in each of them.
7+
* Servant offers some functionality to a group of classes without defining that functionality in each of them.
88
* A Servant is a class whose instance provides methods that take care of a desired service,
99
* while objects for which the servant does something, are taken as parameters.
1010
*
1111
*/
1212
public class App {
13-
static Servant jenkins = new Servant("Jenkins");
14-
static Servant travis = new Servant("Travis");
15-
16-
public static void main( String[] args ){
17-
scenario(jenkins, 1);
18-
scenario(travis, 0);
19-
}
20-
21-
/*
22-
* Can add a List with enum Actions for variable scenarios
23-
* */
24-
public static void scenario(Servant servant, int compliment){
25-
King k = new King();
26-
Queen q = new Queen();
27-
28-
ArrayList<Royalty> guests = new ArrayList<>();
29-
guests.add(k);
30-
guests.add(q);
31-
32-
//feed
33-
servant.feed(k);
34-
servant.feed(q);
35-
//serve drinks
36-
servant.giveWine(k);
37-
servant.giveWine(q);
38-
//compliment
39-
servant.GiveCompliments( guests.get(compliment) );
40-
41-
//outcome of the night
42-
for(Royalty r : guests)
43-
r.changeMood();
44-
45-
//check your luck
46-
if( servant.checkIfYouWillBeHanged(guests) )
47-
System.out.println(servant.name + " will live another day");
48-
else
49-
System.out.println("Poor " + servant.name + ". His days are numbered");
50-
}
51-
52-
13+
static Servant jenkins = new Servant("Jenkins");
14+
static Servant travis = new Servant("Travis");
15+
16+
public static void main(String[] args) {
17+
scenario(jenkins, 1);
18+
scenario(travis, 0);
19+
}
20+
21+
/*
22+
* Can add a List with enum Actions for variable scenarios
23+
* */
24+
public static void scenario(Servant servant, int compliment) {
25+
King k = new King();
26+
Queen q = new Queen();
27+
28+
ArrayList<Royalty> guests = new ArrayList<>();
29+
guests.add(k);
30+
guests.add(q);
31+
32+
//feed
33+
servant.feed(k);
34+
servant.feed(q);
35+
//serve drinks
36+
servant.giveWine(k);
37+
servant.giveWine(q);
38+
//compliment
39+
servant.GiveCompliments(guests.get(compliment));
40+
41+
//outcome of the night
42+
for (Royalty r : guests)
43+
r.changeMood();
44+
45+
//check your luck
46+
if (servant.checkIfYouWillBeHanged(guests))
47+
System.out.println(servant.name + " will live another day");
48+
else
49+
System.out.println("Poor " + servant.name + ". His days are numbered");
50+
}
5351
}
Lines changed: 27 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,33 @@
11
package com.iluwatar;
22

3-
public class King implements Royalty{
4-
private boolean isDrunk = false, isHungry = true, isHappy = false;
5-
private boolean complimentReceived = false;
6-
7-
@Override
8-
public void getFed() {
9-
isHungry = false;
10-
}
3+
public class King implements Royalty {
4+
private boolean isDrunk;
5+
private boolean isHungry = true;
6+
private boolean isHappy;
7+
private boolean complimentReceived;
118

12-
@Override
13-
public void getDrink() {
14-
isDrunk = true;
15-
}
16-
17-
public void receiveCompliments(){
18-
complimentReceived = true;
19-
}
9+
@Override
10+
public void getFed() {
11+
isHungry = false;
12+
}
2013

21-
@Override
22-
public void changeMood() {
23-
if(!isHungry && isDrunk) isHappy = true;
24-
if( complimentReceived ) isHappy = false;
25-
}
14+
@Override
15+
public void getDrink() {
16+
isDrunk = true;
17+
}
2618

27-
@Override
28-
public boolean getMood() {
29-
return isHappy;
30-
}
19+
public void receiveCompliments() {
20+
complimentReceived = true;
21+
}
22+
23+
@Override
24+
public void changeMood() {
25+
if (!isHungry && isDrunk) isHappy = true;
26+
if (complimentReceived) isHappy = false;
27+
}
28+
29+
@Override
30+
public boolean getMood() {
31+
return isHappy;
32+
}
3133
}
Lines changed: 34 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,38 @@
11
package com.iluwatar;
22

3-
public class Queen implements Royalty{
4-
private boolean isDrunk = true, isHungry = false, isHappy = false;
5-
private boolean isFlirty = true, complimentReceived = false;
6-
7-
@Override
8-
public void getFed() {
9-
isHungry = false;
10-
}
11-
12-
@Override
13-
public void getDrink() {
14-
isDrunk = true;
15-
}
16-
17-
public void receiveCompliments(){
18-
complimentReceived = true;
19-
}
20-
21-
@Override
22-
public void changeMood() {
23-
if( complimentReceived && isFlirty && isDrunk ) isHappy = true;
24-
}
25-
26-
@Override
27-
public boolean getMood() {
28-
return isHappy;
29-
}
30-
31-
public void setFlirtiness(boolean f){
32-
this.isFlirty = f;
33-
}
3+
public class Queen implements Royalty {
4+
private boolean isDrunk = true;
5+
private boolean isHungry;
6+
private boolean isHappy;
7+
private boolean isFlirty = true;
8+
private boolean complimentReceived;
9+
10+
@Override
11+
public void getFed() {
12+
isHungry = false;
13+
}
14+
15+
@Override
16+
public void getDrink() {
17+
isDrunk = true;
18+
}
19+
20+
public void receiveCompliments() {
21+
complimentReceived = true;
22+
}
23+
24+
@Override
25+
public void changeMood() {
26+
if (complimentReceived && isFlirty && isDrunk) isHappy = true;
27+
}
28+
29+
@Override
30+
public boolean getMood() {
31+
return isHappy;
32+
}
33+
34+
public void setFlirtiness(boolean f) {
35+
this.isFlirty = f;
36+
}
3437

3538
}
Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,14 @@
11
package com.iluwatar;
22

33
interface Royalty {
4-
public void getFed();
5-
public void getDrink();
6-
public void changeMood();
7-
public void receiveCompliments();
8-
public boolean getMood();
4+
5+
void getFed();
6+
7+
void getDrink();
8+
9+
void changeMood();
10+
11+
void receiveCompliments();
12+
13+
boolean getMood();
914
}

0 commit comments

Comments
 (0)