質問は以下の2つです。
1.以下のようなPersonクラスを、プロパティだけを定義したクラス、メソッドだけを定義したクラスに
分離することは、クラス設計の考え方としてアリでしょうか。ナシでしょうか。
※プロパティのみ定義したクラスに分けることで、保守性を高める、など
そういったデザインパターンがあるのでしょうか
2.GetFather()メソッドのように、自分のインスタンスとは直接関係の無いデータを提供するメソッドは、
Personクラスの中に定義してはダメでしょうか。(オブジェクト指向に違反しているのでしょうか)
記載内容に不足ありましたら、ご指摘いただけると幸いです。
何卒よろしくおねがいいたしますm(_ _)m
■補足情報
使用している技術は、.NET Frameworkと、WPFです。
MVVMで設計し、ViewのDatagridに、List<Person>を表示することを想定しています。
※Entity FrameworkやDataTableは使いません。
C#
1class Person{ 2 // 名前 3 public string FirstName{get; set;} 4 // 苗字 5 public string LastName{get; set;} 6 // 子ども 7 public List<Person> Children{get; set;} 8 9 // コンストラクタ 10 public Person(){ 11 this.FirstName = string.Empty; 12 this.LastName = string.Empty; 13 this.Children = new List<Person>(); 14 } 15 // 氏名を返します 16 public string GetFullName(){ 17 string FullName = this.FirstName + this.LastName; 18 19 return FullName; 20 } 21 22 // 引数のpeopleから父親を返します 23 // 見つからない場合はnullを返します 24 public Person GetFather(List<Person> people){ 25 // Fatherをnullで初期化します 26 Person Father = null; 27 28 foreach(Person person in people){ 29 // personの子どもを確認していきます。 30 foreach(Person child in person.Children){ 31 // 子と自分の氏名が一致した場合は、子の親が自分の父親です 32 if(child.GetFullName() == this.GetFullName()){ 33 Father = person; 34 break; 35 } 36 } 37 } 38 39 return Father; 40 } 41} 42 43
回答1件
あなたの回答
tips
プレビュー