如何在 OOP 中实现设计

How to implement design in OOP

我有以下结构


我为每个实体创建了 class 即

现在我想将策略应用于应用程序。 一项政策应该有一个 Policy class 对象。 Policy 的所有实例都是不同的。每个策略都有唯一的名称和 ID。

继承不起作用,请考虑以下层次结构 -

因为每项政策都需要提供 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

可能介于EnvironmentApplication之间,因为我们可以说环境是由应用程序组成的,但在其他地方则没有。