2011-06-12 3 views
2

학생 및 교사를위한 소셜 네트워킹 응용 프로그램을 만들려고합니다. 나는 현재 사용자를 설계하고하는 모듈에게 나는이 두 가지 방법의 생각시스템에서 두 가지 유형의 계정을 설계하는 방법

접근 계정

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 

} 

1은 이러한 방법보다 더 좋은 방법이 있나요 ?

답변

2

접근 방식 2는 제 의견으로는 훨씬 명확하고 선호됩니다.

그것이 내려 오는 어떤 User는 계정이 또는 User 계정입니다 있나요? 나에게있어서 당신은 접근 방식 2에서와 마찬가지로이 경우 상속 대신 합성을 사용해야한다.

+0

이러한 시나리오가 발생 했습니까?이 문제와 관련된 표준 사례가 있습니까? –

1

나는 접근 방식 2가 더 좋기 때문에 현실 세계 시나리오에 더 가깝다. 학생과 교사 사용자이고 각각 ​​은 원하는 속성이 설정된 계정을 가지고 있습니다.

관련 문제