这是一种设计模式吗?如何避免这里的switch语句

时间:2018-03-21 08:58:07

标签: design-patterns

一张图片值得千言万语

底部矩形包含一堆子类和一个基类。顶部矩形包含逻辑位

每个子类需要运行顶部逻辑的1位或更多位,这里没有基类类型的通用性

还有其他“顶级正方形”的逻辑。

目前,这是使用switch语句实现的(我知道)。我能想到的唯一选择是每个逻辑中有一个方法的类,然后每个类可以调用相应的方法

现实生活中的例子是针对一堆报告,每个报告在页面上需要不同的gui元素,但正如我所说,没有可以提取到公共基类的常见行为

enter image description here

一个具体的例子

报告类型

年度

  • 审计员
  • 零售
  • 人口普查
  • ...

每份报告都需要不同元素的组合

年度&审计员需要

  • 从 - >到日期
  • 公司名称
  • 公司类型

人口普查&旅行需要

  • 从 - >到日期
  • 理事会
  • 宗教
  • 收入

零售需求

  • 公司名称
  • 收入

Book&军事与军事白色需要

1 个答案:

答案 0 :(得分:0)

看起来Strategy Pattern可以帮助你,尽管要求并不那么明显。但我看到了类似的案例,并为他们使用策略。