-
Notifications
You must be signed in to change notification settings - Fork 174
Expand file tree
/
Copy pathDIContainer.java
More file actions
45 lines (35 loc) · 1.3 KB
/
DIContainer.java
File metadata and controls
45 lines (35 loc) · 1.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
package baseball;
import java.util.List;
import baseball.domain.number_generator.INumberGenerator;
import baseball.domain.number_generator.IntNumberGenerator;
import baseball.domain.score_calculator.BallCalculator;
import baseball.domain.score_calculator.IScoreCalculator;
import baseball.domain.score_calculator.StrikeCalculator;
import baseball.domain.strike_zone_calculator.IStrikeZoneCalculator;
import baseball.domain.strike_zone_calculator.StrikeZoneCalculator;
public class DIContainer {
public static DIContainer shared = new DIContainer();
public final Domain domain;
public final Util util;
private DIContainer() {
this.util = new Util();
this.domain = new Domain(util);
}
public static class Util {
final public int generateNumber = 3;
Util() {
}
}
public static class Domain {
final public INumberGenerator<List<Integer>> integerNumberGenerator;
final public IStrikeZoneCalculator strikeZoneCalculator;
final public IScoreCalculator strikeCalculator;
final public IScoreCalculator ballCalculator;
Domain(Util util) {
integerNumberGenerator = new IntNumberGenerator();
strikeCalculator = new StrikeCalculator();
ballCalculator = new BallCalculator(strikeCalculator);
strikeZoneCalculator = new StrikeZoneCalculator(this.strikeCalculator, this.ballCalculator);
}
}
}