2014-01-27 79 views
0

我是新的仓库模式,并试图在我的项目中使用它。我有以下我的项目单位:我们可以在另一个仓库继承仓库c#

  • 用户配置
  • UserTypeA
  • UserTypeB
  • UserTypeC

我有3种类型的用户和用户配置包含所有他们三人的一般信息如密码,用户名等。还有许多其他实体,每种类型的用户与其他实体有不同类型的关系。现在,我已经决定创建此以下存储库模式:

public class UserProfileRepository 
{ 
.... 
} 

public class UserTypeAReository: UserProfileRepository 
{ 
..... 
} 

public class UserTypeBReository: UserProfileRepository 
{ 
..... 
} 

public class UserTypeCReository: UserProfileRepository 
{ 
..... 
} 

所以我想知道的是这个(库继承)来下的良好做法或有任何其他更好的方式来做到这一点?

EDIT

有一个1至0..1共享主键关系的B/W 用户配置和(UserTypeA,UserTypeB和UserTypeC)

+0

是的,这是好的。特别是由于您将UserProfile的属性存储在单独的表中,因此可以让事情保持干爽。 Altough它可能会更好,在http://codereview.stackexchange.com/问这个 注:没有必要指定“库”中的每一个类的名字,你应该只使用他们是有用的模式,不要把自己锁合为一体。 – MrFox

+0

如果你的用户类型是disjunkt,我会去继承,让我们处理所有需要的东西。如果不是你的方法看起来不错。 – TGlatzer

+0

也看看这个http://stackoverflow.com/questions/5809316/repository-pattern-and-inheritance-in-net –

回答

0

根据您要达到的目标,您还可以使用InterfaceAbstract Class

如果你希望所有的类有合同一个共同的,但每种方法的实现是不同的,那么你可以使用一个Interface,既然你有这样会给更多的灵活性多接口继承五世的单类继承C#

使用Abstract class,您可以设置方法以及实现,但允许派生类覆盖基本实现。

这SO后也可能会有帮助:Interface vs Base class

相关问题