我有一个奇怪的系统,我想知道我是如何在课堂图中列出的,这是一个小型大学项目的系统
为简单起见,我有两个系统,一个"会员"方和#34;比赛"成员方面使用成员方,竞赛秘书使用竞赛方,公司主席可以访问整个系统,而每个秘书只有一个系统的一半,他们通过GUI访问。
有一个BaseRace类存储所有种族信息,但不存储修改此信息的函数。
还有一个组织者,它扩展了种族秘书的功能,但功能有限(没有多少方法可供他们使用)
还有一个BaseMember类,它有三个子类,用于保存成员信息,这些是成员,他们的权限级别低于秘书(初级,高级,支持)
我设置单独的Race和Member交互方法的方式是,我创建了一个RaceFunctions类和一个MemberFunctions类,它存储了成员函数(添加,删除,编辑)和竞争函数(添加,删除,编辑)。
这样,主席可以访问这两个类,而秘书只能访问一个。
请记住我还没有代码,这是我的初始类图。
答案 0 :(得分:0)
以下是我将最大化代码重用并保持设计简单的方法:
这将使你只需要在主席类中编写一次代码,然后将代码传递给每个受限制的实体。
有关使用代理
的更多信息,请参阅Proxy pattern答案 1 :(得分:0)
我创建了一个RaceFunctions和一个MemberFunctions类,它存储了成员函数(添加,删除,编辑)和竞争函数(添加,删除,编辑)。
我不会将任何像RaceFunctions
或MemberFunctions
这样的类放入UML类图中。另外,我不明白为什么要创建名为BaseRace
或BaseMember
的类。
很难从简短的描述中理解所需的系统功能,但在类图中,您应该专注于为您计划的系统定义适当的术语。在制作UML类图时,使用系统中任何类的人都不是那么重要。类图显示了如何在系统中命名和组织数据。
在我看来,您将类图与用例图混合在一起。在用例图中,您可以模拟系统的各个部分将如何使用,最终由谁(演员)使用。
正如您所说,我在系统中只看到两个类:Race
和Member
。您还可以添加User
,Action
,AllowedUsersAction
等类来存储用户的访问权限。不需要创建单独的类(Organiser,
),因为它只能由某些用户使用。