2

私のシステムには、教師と生徒の2種類のユーザーがいると仮定します。これで、教師と生徒の両方のデータがテーブルUsersに保存されます。したがって、テーブルUserに対応するクラスUserがあります。

しかし、次に、Userから継承するTeacherとStudentの2つのクラスを作成しています。いくつかの追加のプロパティとメソッドがあることは別として、これらのクラスはコードをより明確にします。(私はUserオブジェクトよりもTeacherオブジェクトについて詳しく知っています。デフォルトのCtor of Teacherでは、UserTypeなどのフィールドをTeacherのデフォルト値に設定しています)

現在、私は主にapi/presentationレイヤー/servicesレイヤーでTeacher/Studentオブジェクトを使用しています。ただし、データアクセス層には、Usersテーブルに格納されているUserオブジェクトを渡す必要があります。したがって、Teacher/StudentオブジェクトからUserオブジェクトを取得する必要があります。

各プロパティをTeacherからUserにコピーするコードを記述したくないのですが、他の人がこれをどのように行うのか疑問に思っていましたか?

また、個別の教師/生徒クラスを用意するよりも、これを設計するためのより良い方法はありますか?

4

1 に答える 1

8

ユーザーから派生したものであれば問題ありません。ユーザーを取り込むようにデータ アクセスを設計できます。学生または教師ユーザーであるため、問題なく機能します。

したがって、次の関数宣言が与えられます。

public void SaveUser(User user){
   //Save a user baby!!!
}

次に、このコードは完全に有効です。

var myStudent = new Student();
var myTeacher = new Teacher();

SaveUser(myStudent);
SaveUser(myTeacher);

または、何か不足していますか?

于 2012-11-28T20:22:32.213 に答える