php - 状态设计模式对于 PHP 表单是否过大?

标签 php forms design-patterns state-pattern

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

  • 嵌入代码
  • 职位
  • 描述
  • 当前画廊
  • 缩略图

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

有一个具有以下选项的选择菜单:

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

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

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

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

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

  1. 显示状态
  2. 表单输入状态

但是,我的问题是,使用状态模式会不会有点矫枉过正?

此时,每次访问页面时,表单的每个部分都会通过一个 switch 语句来决定它应该处于“显示”状态还是“输入”状态,然后相应地执行操作。我想知道实现状态模式设计是否会使更改表单和创建类似表单变得更容易。

谢谢!

最佳答案

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

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

关于php - 状态设计模式对于 PHP 表单是否过大?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3393368/

相关文章:

php - 类型错误 : 'checkValidity' called on an object that does not implement interface HTMLTextAreaElement

javascript - 表单 onSubmit 与 onClick

javascript - 包含多个文件和其他输入字段的表单验证

c++ - 访问聚合器类中类之间共享的变量

PHP - 如何从 shell_exec 输出中获取参数

php - 在 CKEditor 调色板中只显示少数需要的颜色

php - 在 NetBeans PHP 中重命名命名空间?

php - 为什么脚本不跳过 MySQL 数据插入?

c# - 每个算法具有不同方法签名的策略模式

java - 我们如何确保我们只能创建一个类的一个实例?