问题描述
我有以下结构
我创建了每个实体的类,即
- 班级组织
- 类环境,
- 类应用程序
- 课程政策
现在,我要将策略应用于“应用程序”。
一个策略应具有一个Policy
类对象。策略的所有实例均不同。每个策略都有唯一的名称和ID。
继承将不起作用,请考虑以下层次结构-
- 组织
- 环境(组织)
- API(环境)
- 政策(API)
因为需要执行每项策略,所以必须提供API,环境,组织的所有详细信息。
解决方法
所有Policy实例都不相同。 每个政策都有唯一的名称和ID
您可以通过约束来表明这一点:
Policy.allInstances() -> forAll(p1,p2 |
p1 <> p2 implies (p1.name <> p2.name and p1.ID <> p2.ID))
您提供的信息中的类图可以是:
我不使用双向关系,假设策略不知道关联的 Application ,而他们不知道关联的 Environment 谁不知道相关的组织。
我使用等于*
的多重度0..*
,因为您的问题中没有任何内容说最小多重度每次都是1。我没有指出关系的相反方向上的多重性,因为您的问题并未说明它们之间的某些联系。
继承无效
A inherits B
暗示A is a B
,在您所提供的类中,没有一个满足您的要求,因此它们之间没有继承。
我们可以在这里进行汇总
可能在 Environment 和 Application 之间,因为我们可以说环境是由应用程序组成的,而其他情况则不是。