回答編集履歴
5
略語説明補足
test
CHANGED
@@ -2,12 +2,9 @@
|
|
2
2
|
あと、ドメイン駆動設計 (DDD: Domain-Driven Design) も有効かと思います。
|
3
3
|
|
4
4
|
> 1つめは、どのPlan子クラスも持っているプロパティが異なり、またそれに伴ってコンストラクタが異なるという点です。
|
5
|
-
|
6
|
-
インタフェースの出番ですね。
|
7
|
-
|
8
5
|
> これでは同じようにPlanクラスとして各Planを作成しようと思っていても、結局これらのPlanクラスを使用する側(例えばDatabaseからデータを抽出して各Planを作成するようなクラス)ではramen,beefBowl,healthConsultationの何を作るのかを何らかの方法を用いて判断しないといけません。なぜならどのPlanクラスを作成するかによって、コンストラクタに渡すものが異なるからです。
|
9
6
|
|
10
|
-
|
7
|
+
Factoryパターンの出番ですね。
|
11
8
|
|
12
9
|
> 2つめに、プランCが、他のクラスが持っていないnextScheduleメソッドを持っている問題です。
|
13
10
|
> これはUserのnextHealthConsultationScheduleメソッドで使用されます。ただプランCを契約していないUserにとって、nextHealthConsultationScheduleメソッドは全くいらないメソッドです。プランCを契約していないUserがこのメソッドを使用できるようなクラスの作り方でいいのでしょうか。何だか気持ち悪く感じます。
|
4
略語訂正
test
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
オブジェクト指向設計を学ぶといいですよ。SOLID原則, クリーンアーキテクチャ, デザインパターン など。
|
2
|
-
あと、DDD
|
2
|
+
あと、ドメイン駆動設計 (DDD: Domain-Driven Design) も有効かと思います。
|
3
3
|
|
4
4
|
> 1つめは、どのPlan子クラスも持っているプロパティが異なり、またそれに伴ってコンストラクタが異なるという点です。
|
5
5
|
|
3
オプション処理の説明追記
test
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
オブジェクト指向設計を学ぶといいですよ。SOLID原則, クリーンアーキテクチャ, デザインパターン など。
|
2
|
-
あと、DDD (Domain
|
2
|
+
あと、DDD (Domain-Driven Design) も有効かと思います。
|
3
3
|
|
4
4
|
> 1つめは、どのPlan子クラスも持っているプロパティが異なり、またそれに伴ってコンストラクタが異なるという点です。
|
5
5
|
|
2
引用範囲修正
test
CHANGED
@@ -12,5 +12,7 @@
|
|
12
12
|
> 2つめに、プランCが、他のクラスが持っていないnextScheduleメソッドを持っている問題です。
|
13
13
|
> これはUserのnextHealthConsultationScheduleメソッドで使用されます。ただプランCを契約していないUserにとって、nextHealthConsultationScheduleメソッドは全くいらないメソッドです。プランCを契約していないUserがこのメソッドを使用できるようなクラスの作り方でいいのでしょうか。何だか気持ち悪く感じます。
|
14
14
|
|
15
|
-
持っているか持っていないかに左右されないメソッドを作
|
15
|
+
持っているか持っていないかに左右されないメソッドを作るといいです。
|
16
|
+
どのプランにもオプションがあり、オプション処理の一環として内部からnextScheduleを呼び出せばいいと思います。
|
16
17
|
|
18
|
+
|
1
test
CHANGED
@@ -10,7 +10,7 @@
|
|
10
10
|
ファクトリーパターンの出番ですね。
|
11
11
|
|
12
12
|
> 2つめに、プランCが、他のクラスが持っていないnextScheduleメソッドを持っている問題です。
|
13
|
-
これはUserのnextHealthConsultationScheduleメソッドで使用されます。ただプランCを契約していないUserにとって、nextHealthConsultationScheduleメソッドは全くいらないメソッドです。プランCを契約していないUserがこのメソッドを使用できるようなクラスの作り方でいいのでしょうか。何だか気持ち悪く感じます。
|
13
|
+
> これはUserのnextHealthConsultationScheduleメソッドで使用されます。ただプランCを契約していないUserにとって、nextHealthConsultationScheduleメソッドは全くいらないメソッドです。プランCを契約していないUserがこのメソッドを使用できるようなクラスの作り方でいいのでしょうか。何だか気持ち悪く感じます。
|
14
14
|
|
15
15
|
持っているか持っていないかに左右されないメソッドを作って、インタフェースに定義するといいです。
|
16
16
|
|