我正在创建一个学生信息系统,它将有两个访问级别,即管理员和经理。Admin
类可以执行Manager
类的所有功能以及一些附加功能。但从字面上讲,管理员不是经理。那么,我应该如何实现这种关系呢?是否可以使用Admin extends Manager
,或者是否有其他方法来实现此功能?(我将使用java来实现系统)
发布于 2017-11-04 16:33:29
嗯,UML提供了3种机制来描述类之间的(一些)相似性。
让我们仔细看看它们:
泛化
当两个类具有泛化关系时,其中一个类(子类、专门类或子类)是另一个类(超类、一般类或父类)的一种。子类拥有父类的所有属性和方法(继承它们),可以有一些额外的属性或方法,并且可以在不同的情况下处理一些方法。概括是用一条实线和一个箭头来描述的,箭头的头部是一个空三角形。Head指向更通用的类
接口
实际上,接口并不是两个在某种程度上相似的类之间的直接关系。但它们在一定程度上有助于显示这一点。接口是一种特定类型的类,它具有一组方法。接口不是直接实例化的,但是其他类可以实现该接口,或者需要一个接口。如果一个类实现了一个接口(换句话说,它提供了一个接口),那么它必须拥有一个接口的所有方法,但是接口不会强制执行一个实现方法。因此,我们可能有两个(或更多)实现相同接口的类,然后这两个类将能够执行相同的功能,但这可能是一种完全不同的方式。我们用一条虚线和一个空三角形的箭头来表示接口的实现。需要接口的类是与提供接口的类交互的类。为了显示接口的用法,您可以使用带有开放箭头和构造型<<use>>
的虚线(从技术上讲,它不是构造型)。
替换
类替换用于表明一个类可以替代另一个类的角色,但它不是该类的一种。替换类必须具有它所替换的类的所有方法,但它可能具有不同的内部表示。当两个或多个类可以执行类似的角色,但它们不属于同一类型时,就会使用这种关系。替换关系显示为一条虚线,其中带有指向可替换类的开放箭头和一个构造型<<substitute>>
您的情况是替换,其中Admin可以替换Manager,但是您可以将替换与接口相结合以使其更清晰。此外,一定要确保文档的接收者能够理解您将要使用的元素模型。
发布于 2017-11-04 13:59:35
只需使用Admin和Manager共享的方法创建一个父类即可。
https://stackoverflow.com/questions/47107706
复制相似问题