代码之家  ›  专栏  ›  技术社区  ›  Dan

状态设计模式-ASP.NET Web窗体

  •  1
  • Dan  · 技术社区  · 15 年前

    我正在考虑在ASP.NET Web窗体上实现状态设计模式。

    状态将由传递给页面的查询字符串确定。根据页面的状态,任何操作都将调用具体实现上的方法。

    我试图实现的是一个页面,它可以处理同一一般功能的任意数量的不同实现。

    我的问题是: 这能奏效吗? 这听起来像是正确的方法吗?

    2 回复  |  直到 15 年前
        1
  •  0
  •   Rob    15 年前

    我认为你的建议是一个合理的方法。我能提供的唯一建议是不要挂断完美实现状态模式的电源。我认为只要有一个开关调用一个基于查询字符串值的方法是完全可以接受的。

        2
  •  2
  •   David Yancey    15 年前

    使用状态模式是您可以采用的一种方法,但老实说,您所描述的是MVC框架设计目标的一部分。

    编辑:
    MVP/MVC

    由于MVC框架不是一个选项,因此我将使用被动视图方法或管理器方法来查看模型视图演示者模式(MVP),如下所述: http://www.martinfowler.com/eaaDev/SupervisingPresenter.html

    我们发现被动视图方法对我们的遗留代码进行了一点调整,以使其对我们有好处。

    编辑: 模式:

    在这种情况下,您选择的模式实际上取决于业务需求是什么。

    状态模式:

    状态模式通常用于根据对象的当前状态或与对象的关系状态更改对象的行为。此模式的一个常见用法是在游戏中,当对象的行为取决于按下哪个鼠标光标按钮时。

    http://en.wikipedia.org/wiki/State_pattern

    战略模式:

    当您需要基于配置的不同实现时,此模式非常适合。例如,假设您正在定义一个电子邮件系统,并且您需要有一个不同的实现,基于哪个电子邮件提供者被用来发送电子邮件。

    http://en.wikipedia.org/wiki/Strategy_pattern

    所以状态模式可以明确地是正确的方向,它可以归结为目标是什么,你想要达到什么样的行为。

    你经常会发现模式之间很好地配合,你会使用多个模式与其他模式结合。