回答編集履歴

1

コメントだとコードが見辛いのでサンプルソースコードの追記

2018/03/02 06:14

投稿

szk.
szk.

スコア1400

test CHANGED
@@ -15,3 +15,79 @@
15
15
  また大きすぎるプロジェクトよりは、
16
16
 
17
17
  細かくサブシステム化するほうが、全ての工程においてメリットが大きいです。
18
+
19
+
20
+
21
+ ### 追記
22
+
23
+ ```java
24
+
25
+ interface Validation {
26
+
27
+ BusinessException check();
28
+
29
+ }
30
+
31
+ class ValidationA implements Validation {
32
+
33
+ BusinessException check() {
34
+
35
+ //hogehoge
36
+
37
+ }
38
+
39
+ }
40
+
41
+ class ValidationB implements Validation {
42
+
43
+ BusinessException check() {
44
+
45
+ //hogehoge
46
+
47
+ }
48
+
49
+ }
50
+
51
+ class ValidationFactory {
52
+
53
+ static Validation newIncetance(String classname) {
54
+
55
+ try {
56
+
57
+ Class<?> clazz = Class.forname(classname);
58
+
59
+ return (Validation) clazz.newIncetance();
60
+
61
+ } catch (Exception e) {
62
+
63
+ }
64
+
65
+ return new DefaultValidation();
66
+
67
+ }
68
+
69
+ }
70
+
71
+ class BusinessLogic {
72
+
73
+ void logicA() {
74
+
75
+ Validation validation = ValidationFactory.newIncetance("ValidationA");
76
+
77
+ validation.check();
78
+
79
+ }
80
+
81
+ void logicB() {
82
+
83
+ Validation validation = ValidationFactory.newIncetance("ValidationB");
84
+
85
+ validation.check();
86
+
87
+ }
88
+
89
+ }
90
+
91
+ ```
92
+
93
+ タイポがあるかもしれません。