如何在 OOP 中实现设计
How to implement design in OOP
我有以下结构
- 一个组织可以有多个环境。
- 一个环境可以有很多应用程序。
- 一个应用程序可以有多个策略。
我为每个实体创建了 class 即
- class 组织,
- class环境,
- class申请,
- class 政策
现在我想将策略应用于应用程序。
一项政策应该有一个 Policy
class 对象。 Policy 的所有实例都是不同的。每个策略都有唯一的名称和 ID。
继承不起作用,请考虑以下层次结构 -
- 组织
- 环境(组织)
- API(环境)
- 政策(API)
因为每项政策都需要提供 API、环境、组织的所有细节。
这里可以聚合吗?需要这方面的帮助
All instances of Policy are different.
Every policy have unique name and ID
您可以用约束来表示:
Policy.allInstances() -> forAll(p1, p2 |
p1 <> p2 implies (p1.name <> p2.name and p1.ID <> p2.ID))
一个class图表从你给的信息可以是:
我不使用双向关系假设 Policy 不知道关联的 Application(s) which does not know associated Environment(s) who does not know associated Organization(s).
我使用等同于 0..*
的多重性 *
因为你的问题中没有任何内容说最小多重性每次都是 1。我没有指出关系相反方向的多重性,因为你的问题没有说明它们。
Inheritance will not work
A inherits B
意味着 A is a B
,在 class 中你给 none 满足那个,所以它们之间没有可能的继承。
Can we do aggregation here
可能介于Environment和Application之间,因为我们可以说环境是由应用程序组成的,但在其他地方则没有。
我有以下结构
- 一个组织可以有多个环境。
- 一个环境可以有很多应用程序。
- 一个应用程序可以有多个策略。
我为每个实体创建了 class 即
- class 组织,
- class环境,
- class申请,
- class 政策
现在我想将策略应用于应用程序。
一项政策应该有一个 Policy
class 对象。 Policy 的所有实例都是不同的。每个策略都有唯一的名称和 ID。
继承不起作用,请考虑以下层次结构 -
- 组织
- 环境(组织)
- API(环境)
- 政策(API)
因为每项政策都需要提供 API、环境、组织的所有细节。
这里可以聚合吗?需要这方面的帮助
All instances of Policy are different. Every policy have unique name and ID
您可以用约束来表示:
Policy.allInstances() -> forAll(p1, p2 |
p1 <> p2 implies (p1.name <> p2.name and p1.ID <> p2.ID))
一个class图表从你给的信息可以是:
我不使用双向关系假设 Policy 不知道关联的 Application(s) which does not know associated Environment(s) who does not know associated Organization(s).
我使用等同于 0..*
的多重性 *
因为你的问题中没有任何内容说最小多重性每次都是 1。我没有指出关系相反方向的多重性,因为你的问题没有说明它们。
Inheritance will not work
A inherits B
意味着 A is a B
,在 class 中你给 none 满足那个,所以它们之间没有可能的继承。
Can we do aggregation here
可能介于Environment和Application之间,因为我们可以说环境是由应用程序组成的,但在其他地方则没有。