在不违反SOLID原则的情况下改变的类结构

时间:2013-10-03 03:50:58

标签: c# oop design-patterns

这是我的第一个问题,请告诉我是否需要其他信息......

我是设计新手所以我的知识有点受限,所以我有这个应用程序,我有一个项目类,项目经历了7个阶段,这些阶段没有任何共同点......第一个是Discovery ,其中包含有关要求的问题,其次是产品映射,它允许用户选择项目所需的产品......

问题来了,各阶段不断被添加或删除......

所以我不能把它们的引用放在课堂上,因为我每次都需要修改它。那么如何设计流程呢?

我应该将项目对象传递给舞台对象吗?那么如何跟踪项目的哪个阶段?

2 个答案:

答案 0 :(得分:0)

我认为您应该选择 Process Manager Pattern

每个阶段都应该是实现公共接口/抽象类的独立类(根据您的需要),然后您需要有一个控制项目工作流程的Controller类。您可以根据需要在此Controller类实例中添加或删除步骤。

答案 1 :(得分:0)

您可以将项目的“状态”跟踪为Project.status,作为enum进展到适当的阶段。 (这假设每个阶段只存在一次;它可以重新执行,但会更新/覆盖以前的结果。)

在每个阶段捕获的数据可以实现为Project类中的属性(最简单),或者(更高级)“按下”到每个阶段的复合实体。

不要忘记利用实体/对象来保存需求,产品映射等信息!