策略模式还是构建者模式?

时间:2018-07-08 12:50:59

标签: strategy-pattern builder-pattern

我知道策略模式是一种将算法封装在类中的行为模式。同样,构建器模式是将复杂对象的构造分开。

现在,我必须根据用户在UI中选择的类型来创建不同的地图视图(卖方视图,客户视图)(每个地图都有:房屋,建筑物,街道)。我想尽可能地扩展此功能,因为可能会将其他一些视图添加到程序中。在这种情况下,是否应该创建一个封装算法以创建不同视图的策略?还是应该应用构建器模式?还是应该创建一个内部带有构建器的策略?

public class Map
{
  private List<House> Houses { get; set; }
  private List<Building> Buildings { get; set; }
  private List<Street> Streets { get; set; }
}

在用户界面中:

  • 选择:卖方视图,客户视图。
  • 地图:显示地图及其所有内容,并取决于选择,取决于显示的视图。

卖方视图:绿色待售房屋和建筑物,红色待售

客户视图:蓝色房屋已被选中购买,仅显示在售房屋中。

谢谢,希望您能理解我的问题!

1 个答案:

答案 0 :(得分:0)

据我了解,根据用户角色,您会有不同的行为。因此,具有不同的策略表示数据是合适的。当您必须构造复杂对象时,在策略内部使用 builder 模式听起来也很合理。