回答編集履歴

3

文章の修正

2021/03/02 01:43

投稿

BluOxy
BluOxy

スコア2663

test CHANGED
@@ -104,8 +104,16 @@
104
104
 
105
105
 
106
106
 
107
- オブジェクト指向ではたくさんのデザインパターンや考え方がありますが、それ等を知るときは名前やどんなものか(WHAT)だけを知るのではなくなぜそれが生まれたのか(WHY)、その目的を知ると良いです
107
+ オブジェクト指向ではたくさんのデザインパターンや考え方がありますが、それ等を知るときは名前やどんなものか(WHAT)だけを知るのではなくなぜ・何のためにそれが生まれたのか(WHY)、その経緯を知りましょう
108
108
 
109
109
 
110
110
 
111
+ 経緯を知るとそのデザインパターンや考え方を適用したときにどんな目的を達成できるようになるのかが分かるようになります。
112
+
113
+
114
+
115
+ それも分かれば、現在抱えている自身の問題に対してそのデザインパターンや考え方を適用すべきか否かが判断できるようになります。
116
+
117
+
118
+
111
- すると今回の疑問のように「Viewにデータを表示したい」と「データベースにアクセスしたい/アプリケーション間の通信に使いたい」というそれぞれの目的が合致していないことに気付くことができ、自己解決できるようになります。
119
+ 今回に関しても「Viewにデータを表示したい」という達成すべき目的、「データベースにアクセスしたい/アプリケーション間の通信に使いたい」という達成できる目的が合致していないことに気付くことができ、自己解決できるようになります。

2

文章の修正

2021/03/02 01:43

投稿

BluOxy
BluOxy

スコア2663

test CHANGED
@@ -10,13 +10,19 @@
10
10
 
11
11
 
12
12
 
13
+ プロパティだけを定義したクラスは、DTOや自動生成されたクラス以外で基本的に使われないと思います。
14
+
15
+
16
+
13
17
  > プロパティのみ定義したクラスに分けることで、保守性を高める、など
14
18
 
15
19
  そういったデザインパターンがあるのでしょうか
16
20
 
17
21
 
18
22
 
23
+ ないでしょう。むしろ、アンチパターンかと思います。
24
+
19
- DTOや自動生成されたクラス以外は基本的にはないかと思います。むしろ、アンチパターンかと思います。これはDDDという設計手法に存在する概念ですが、ドメインモデル貧血症という言葉があります。
25
+ これはDDDという設計手法に存在する概念ですが、ドメインモデル貧血症という言葉があります。
20
26
 
21
27
 
22
28
 
@@ -26,9 +32,9 @@
26
32
 
27
33
 
28
34
 
29
- しかし、私はDDDともこのパターンにはならないようにすべきと思います。
35
+ しかし、私はオブジェクト指向を意識したコーディングをするのであれば、たとえDDDという設計手法を用いらしてドメイモデル貧血症にはならないようにすべきと思います。
30
36
 
31
- プロパティのみ定義したクラスが無意味に、目的もなく存在すると読みにくい・理解しにくいコードが生まれるからです。
37
+ プロパティのみ定義したクラスが無意味に、目的もなく存在するとオブジェクト指向的に読みにくい・理解しにくいコードが生まれるからです。
32
38
 
33
39
 
34
40
 

1

誤字とプチ補足

2021/03/02 01:31

投稿

BluOxy
BluOxy

スコア2663

test CHANGED
@@ -26,7 +26,11 @@
26
26
 
27
27
 
28
28
 
29
+ しかし、私はDDDでなくともこのパターンにはならないようにすべきと思います。
30
+
29
- プロパティのみ定義したクラスが無意味に、目的もなく存在すると読みにくい・理解しやすいコードが生まれす。
31
+ プロパティのみ定義したクラスが無意味に、目的もなく存在すると読みにくい・理解しにくいコードが生まれるからです。
32
+
33
+
30
34
 
31
35
  オブジェクト指向ではとにかく命名が重要です。プロパティのみ定義したクラスには必要があればメソッドを定義すべきで、命名はそのアプリケーションの機能に関連するべきです。
32
36
 
@@ -50,7 +54,9 @@
50
54
 
51
55
 
52
56
 
53
- ちなみに、私ならGetFatherメソッドを使うのではなくChildrenプロパティようにプロパティで定義すると思います。(余談です。Personに性別が定義されていませんが、どのようにしてFatherかMotherか判別するのでしょうか)
57
+ ちなみに、私ならGetFatherメソッドを使うのではなくChildrenプロパティと同じようにプロパティで定義すると思います
58
+
59
+ ※ところで、Personクラスには性別に相当する状態が定義されていませんが、どのようにしてFatherかMotherか判別するのでしょうか
54
60
 
55
61
 
56
62