假设我的系统中有两类用户,教师和学生。现在教师和学生数据都存储在用户表中。因此我有一个类 User,它对应于表 User。
然后我创建了两个继承自 User 的类,Teacher 和 Student。这些类除了有一些额外的属性和方法外,还使代码更加清晰。 (我对 Teacher 对象的了解比 User 对象更多。在 Teacher 的默认 Ctor 中,我将 UserType 等字段设置为 Teacher 的默认值)
现在我主要在 api/表示层/服务层使用教师/学生对象。但是对于数据访问层,我必须传递一个用户对象,因为它存储在用户表中。所以我需要从教师/学生对象中获取用户对象。
我想避免编写代码来将每个属性从 Teacher 复制到 User,并且想知道其他人是如何做到这一点的?
此外,是否有更好的设计方式而不是单独的教师/学生类(class)?
最佳答案
如果它们是从 User 派生的,那么它应该无关紧要。您可以设计您的数据访问以接收用户,并且由于学生或教师是用户,因此它会正常工作。
给定这个函数声明:
public void SaveUser(User user){
//Save a user baby!!!
}
那么这段代码是完全有效的:
var myStudent = new Student();
var myTeacher = new Teacher();
SaveUser(myStudent);
SaveUser(myTeacher);
还是我遗漏了什么?
关于c# - 如何从子类创建父类(super class)的实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13613669/