我正在考虑在ASP .NET Webform上实现状态设计模式。
状态将由传递给页面的查询字符串确定。根据页面的状态,任何操作都会在具体实现上调用该方法。
我想要实现的是一个可以处理相同通用功能的任意数量的不同实现的页面。
我的问题是: 这会有用吗? 这听起来像是正确的做法吗?
答案 0 :(得分:2)
使用状态模式是您可以采取的一种方法,但老实说,您的描述是MVC框架旨在实现的目标的一部分。
编辑:
MVP / MVC
由于MVC框架不是一个选项,因此我将使用被动视图方法或主管方法来查看模型视图Presenter模式(MVP),如下所述:http://www.martinfowler.com/eaaDev/SupervisingPresenter.html
我们发现被动视图方法适用于我们的遗留代码,以便为我们做好事。
编辑: 图案:
在这种情况下,您选择的模式实际上取决于业务需求。
州模式:
状态模式通常用于需要根据对象的当前状态或与对象的关系状态更改对象的行为时。当对象的行为取决于按下哪个鼠标光标按钮时,此模式的常见用法是游戏。
http://en.wikipedia.org/wiki/State_pattern
策略模式:
当您需要基于配置的不同实现时,此模式很适合。例如,假设您正在定义电子邮件系统,并且您需要根据使用哪个电子邮件提供商发送电子邮件进行不同的实施。
http://en.wikipedia.org/wiki/Strategy_pattern
因此,国家模式绝对是正确的方向,它只能归结为目标是什么以及你试图满足的行为。
你经常发现的模式是它们相互配合良好,你会使用多种模式相互配合。
答案 1 :(得分:0)
我认为你的建议是一种合理的方法。我能真正提供的唯一建议就是不要完全实现状态模式。我认为只有一个基于查询字符串值调用方法的开关是完全可以接受的。