PHP表单的状态设计模式是否过度杀伤?

时间:2010-08-03 03:10:50

标签: php design-patterns forms state

我有一个页面,当访问时会显示与视频相关的信息表:

  • 嵌入代码
  • 标题
  • 描述
  • 当前画廊
  • 缩略图

首次访问该页面时,此信息是只读的。

有一个选择菜单,其中包含以下选项:

  • 编辑说明
  • 创建缩略图(上传/替换)
  • 修改嵌入代码
  • 更改图库
  • 删除视频

当用户选择一个选项时,会显示相同的初始数据表,但必要时会显示相关的表格输入。

例如,如果选择“编辑描述”,页面将重新加载,描述文本将替换为文本输入。如果选择“创建缩略图”,则显示文件上载输入。

我们的想法是将所有信息一起显示,但限制一次可以编辑的数量。

我知道状态模式是一种可能的解决方案,因为每条数据都可以处于以下两种状态之一:

  1. 显示状态
  2. 表单输入状态
  3. 但是,我的问题是,使用状态模式是否过度杀伤?

    目前,每次访问页面时,表单的每个部分都会以switch语句决定它是处于“显示”还是“输入”状态,然后相应地采取行动。我想知道实施状态模式设计是否会改变形式并在未来更容易创建类似的形式。

    谢谢!

2 个答案:

答案 0 :(得分:4)

不,州的设计模式并不过分。它可能是处理这种复杂接口的算法的一个非常好的选择。我曾多次在PHP中使用状态引擎;它可以帮助您创造性地思考问题,并且您通常会获得灵活性的奖励。

我希望更多的程序员知道这些事情。

答案 1 :(得分:0)

我使用的设计模式越多,包括PHP中的State模式,我就越相信它们可以节省时间。最初,开发可能需要更长时间,但不会太长。但是,当涉及到更改和更新时,它们可以节省大量时间。您的代码组织得更好,更清晰,并且不太可能通过炸弹进入您的代码,而您在设计模式之外的紧密绑定。我已经在php5dp.com上完成了几个PHP设计模式,但是在州dp中没有。