我正在尝试为学生和教师创建一个社交网络应用程序。 我目前正在设计用户帐户模块
我已经想到了这两种方法
方法1
Public class Account
{
public string AccountId{get;set;}
public string AccountName{get;set;}
.
.
.
}
public class Student : Account
{
public Course[] Courses {get; set;}
//other student properties
.
.
.
}
public class Teacher : Account
{
//other teacher properties
}
方法2
Public class Account
{
public string AccountId{get;set;}
public string AccountName{get;set;}
public AccountType AccountType {get;set;} //AccontType is enum having student and teacher
.
.
.
}
public class User
{
public string UserId { get;set;}
public string UserName {get;set;}
public Account Account {get;set;}
}
public class Student : User
{
public Course[] Courses {get; set;}
//other student properties
.
.
.
}
public class Teacher : User
{
//other teacher properties
}
有没有比这些方法更好的方法?
答案 0 :(得分:2)
在我看来,方法2更清晰,更受欢迎。
归结为User
有帐户或是是User
帐户吗?对我而言,前者在这种情况下应该使用组合而不是继承,就像在方法2中那样。
答案 1 :(得分:1)
我更喜欢方法2,因为它更贴近现实世界的情景。学生和教师是用户,并且每个都拥有帐户,并且具有所需的属性集。