如何在OOP中实现设计
我有以下结构如何在OOP中实现设计,oop,design-patterns,uml,Oop,Design Patterns,Uml,我有以下结构 一个组织可以有多个环境 一个环境可以有多个应用程序 一个应用程序可以有多个策略 我创建了每个实体的类,即。 阶级组织, 班级环境, 班级申请 阶级政策 现在我想将策略应用于应用程序。 一个策略应该有一个策略类对象。所有的策略实例都是不同的。每个策略都有唯一的名称和ID 继承不起作用,考虑以下层次- 组织机构 环境(组织) 空气污染指数(环境) 政策(API) 因为每个策略都需要处理API、环境和组织的所有细节 我们能在这里做些什么吗?需要帮忙吗 所有的策略实例都是不
- 一个组织可以有多个环境
- 一个环境可以有多个应用程序
- 一个应用程序可以有多个策略
我创建了每个实体的类,即。
- 阶级组织,
- 班级环境,
- 班级申请
- 阶级政策
策略
类对象。所有的策略实例都是不同的。每个策略都有唯一的名称和ID
继承不起作用,考虑以下层次-
- 组织机构
- 环境(组织)
- 空气污染指数(环境)
- 政策(API)
Policy.allInstances() -> forAll(p1, p2 |
p1 <> p2 implies (p1.name <> p2.name and p1.ID <> p2.ID))
Policy.allInstances()->forAll(p1,p2|
p1p2表示(p1.name p2.name和p1.ID p2.ID))
根据您提供的信息,类图可以是:
我不使用双向关系,假设策略不知道关联的应用程序,其不知道关联的环境,其不知道关联的组织
我使用多重性*
相当于0..*
,因为您的问题中没有任何内容表明每次的最小多重性为1。我没有指出关系的相反方向的多重性,因为你的问题没有表明它们的某些方面
继承是行不通的
A继承B
意味着A是B
,在您提供的类中,没有一个满足这一点,因此它们之间没有可能的继承
我们能在这里做些什么吗
可能介于环境和应用程序之间,因为我们可以说环境是由应用程序组成的,但在其他地方则不是。
现在我想对应用程序应用策略。一个策略应该有一个策略类对象
您的意思是所有策略实例都是“不同”的吗?请说清楚一点<代码>继承将不起作用哪些类之间的继承?@bruno所有策略实例都“不同”>>是的,还有更新的问题每个策略都只与应用程序有关吗?换句话说,如果我接受一个应用程序并将其移动到另一个环境或组织,策略是否可以保持不变?