首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于角色创建类

基于角色创建类
EN

Stack Overflow用户
提问于 2011-12-02 16:26:06
回答 3查看 131关注 0票数 3

我正在开发一个体育俱乐部管理的应用程序。我的问题是,我有一个包含所有“默认”信息(姓名、姓氏、性别……)的主类Member。以及另外两个继承自Member的类CoachPractitioner。教练有一些特定的属性(工资,当月进行的培训...)从业者有一些其他的(isCompetitor,类别...)

问题是,实践者也可以是培训者,反之亦然。我怎样才能把它建模成比同一个人有两个条目更好的东西呢?

编辑:这是它现在的样子

代码语言:javascript
复制
Class Member {}
Class Coach:Member {}
Class Practitioner:Member {}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-12-02 16:32:17

如果你一次只以一种方式看待他们--作为一组从业者中的一员,或者作为一组培训师中的一员--那么你可以将他们创建为他们同时被查看的特定类型的成员。如果需要,您可以将布尔型属性"IsTrainer“添加到实践者,将"IsPractitioner”添加到trainer,以指示在其他位置有关于该人员的更多信息。

这假设你一次只以一种方式看着他们,而不是得到一个包含所有关于这个人的信息的页面。

票数 2
EN

Stack Overflow用户

发布于 2011-12-02 16:29:33

您可以创建一个包含角色列表的类“member”。每个角色(教练和/或实践者)都继承自一个基类' role‘,该基类包含您现在在成员类中拥有的所有属性。教练和实践者都有自己的特定属性。所以:

代码语言:javascript
复制
public class Member {

    public IList<Role> Roles { get; private set; }

    public Member(){
        Roles = new List<Role>();
    }

}

public class Role {

    public string SomeGlobalProperty { get; set; }

}

public class Coach : Role {

    public string SomeSpecificProperty { get; set; }

}

public class Practitioner : Role {

    public string SomeSpecificProperty { get; set; }

}
票数 4
EN

Stack Overflow用户

发布于 2011-12-02 16:30:38

SImeple:认识到你基本上需要把一本入门书读进OOP。

一个成员就是一个成员(即使是这样也是有争议的--实际上它是一个政党,不管它做什么)。

它有不同的角色,基本上是角色的集合,都有开始和结束日期。

代码语言:javascript
复制
Party
  CoachInformation
  PractitionerInformation

等。

我建议阅读"The Data Model Resource Book",第一卷-他们详细介绍了这个标准问题以及大多数人是如何弄错的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8353575

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档