1
0
看一看这个 Transaction Script 和 PageController 模式。事务脚本是最基本的域逻辑模式,适合于小型应用程序。PageController的目的是处理来自UI的输入。如果你想让它成为一个单一的命令,那没关系。你能做到的
PostAddTransactionScript然后将$postData写入数据库或它应该执行的任何操作。上面的简化示例仍然与MVC保持一致,因为它将模型逻辑保留在事务脚本中,将输入处理保留在表示层中。
至于你的例子,我宁愿用 Strategy Pattern 并让后置父对象使用命令,而不是使用父对象的命令,例如。
无论如何,我同意其他人的观点,你的控制器应该很薄,模型应该做主要的工作。 |
2
1
就我个人而言,我认为你所描述的模式从长远来看对你没有好处。如果您的控制器已经有了“数千行代码”,那么您就遇到了封装的一般问题,而为每个操作创建一个类只会将您的问题转移到另一个层。 你的控制器应该是 |
3
0
我建议后退一点,想想为什么控制器会增长这么多。也许你可以进行重构,把一些共享组件提取到不同的模块中?也许您的逻辑中有一些代码应该放在模型或视图中?你用的模板系统好吗? 将控制器拆分为更小的部分并不能解决根本问题,只能将其隐藏起来。 |
Vedant · 如何解决python啦啦队长问题?[已关闭] 2 年前 |
cobby · 在战略模式中使用工厂模式? 2 年前 |
Nobody · Java中带while循环的三角形模式 2 年前 |
Eduard Stefanescu · 如何在层之间传输异常? 6 年前 |
D. Schreier sanjeev · 对于目录中的每个类 6 年前 |
Tanvi Jaywant · 如何重载类 6 年前 |