UML搞清楚我的类图

时间:2015-03-14 16:38:37

标签: c# uml class-diagram

我有一个奇怪的系统,我想知道我是如何在课堂图中列出的,这是一个小型大学项目的系统

为简单起见,我有两个系统,一个"会员"方和#34;比赛"成员方面使用成员方,竞赛秘书使用竞赛方,公司主席可以访问整个系统,而每个秘书只有一个系统的一半,他们通过GUI访问。

  • 有一个BaseRace类存储所有种族信息,但不存储修改此信息的函数。

  • 还有一个组织者,它扩展了种族秘书的功能,但功能有限(没有多少方法可供他们使用)

  • 还有一个BaseMember类,它有三个子类,用于保存成员信息,这些是成员,他们的权限级别低于秘书(初级,高级,支持)

我设置单独的Race和Member交互方法的方式是,我创建了一个RaceFunctions类和一个MemberFunctions类,它存储了成员函数(添加,删除,编辑)和竞争函数(添加,删除,编辑)。

这样,主席可以访问这两个类,而秘书只能访问一个。

  • 这是对的吗?
  • 如果是这样,我将如何在课堂图中列出这些内容?

请记住我还没有代码,这是我的初始类图。

2 个答案:

答案 0 :(得分:0)

以下是我将最大化代码重用并保持设计简单的方法:

  • 创建一个可以访问所有项目(主席)
  • 的班级
  • 让所有人在主席班中创建,阅读,更新,删除逻辑
  • 为每个受限用户(秘书和组织者)创建一个类,并将主席类设置为每个用户的属性。然后从限制类中的主席类调用(代理)所需的方法。

这将使你只需要在主席类中编写一次代码,然后将代码传递给每个受限制的实体。

有关使用代理

的更多信息,请参阅Proxy pattern

答案 1 :(得分:0)

  

我创建了一个RaceFunctions和一个MemberFunctions类,它存储了成员函数(添加,删除,编辑)和竞争函数(添加,删除,编辑)。

我不会将任何像RaceFunctionsMemberFunctions这样的类放入UML类图中。另外,我不明白为什么要创建名为BaseRaceBaseMember的类。

很难从简短的描述中理解所需的系统功能,但在类图中,您应该专注于为您计划的系统定义适当的术语。在制作UML类图时,使用系统中任何类的人都不是那么重要。类图显示了如何在系统中命名和组织数据。

在我看来,您将类图与用例图混合在一起。在用例图中,您可以模拟系统的各个部分将如何使用,最终由谁(演员)使用。

正如您所说,我在系统中只看到两个类:RaceMember。您还可以添加UserActionAllowedUsersAction等类来存储用户的访问权限。不需要创建单独的类(Organiser,),因为它只能由某些用户使用。