PHP   发布时间:2022-04-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了不是OO的PHP设计模式,最适合这种情况的PHP模式大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

我们得到了一个PHP库存程序.然后我们应该说一种设计模式是否会使程序更好,或者只会使程序变得更复杂.

该程序的结构如下.

该程序分为嵌入html的PHP脚本.或者(A)整个PHP页面专用于一个选项,或者(B)选项的逻辑位于另一脚本页面内,该脚本页面用于执行类似操作的其他选项. (这不包括简单的按钮,例如“重置”和“返回首页”.)

(A)例如,打开网站后,将显示一个带有选项的导航菜单.当您单击一个选项时,在“客户”下说,有一个“查看”链接.单击后,您将转到另一个页面,该页面包含与更多选项相对应的其他链接,例如“编辑”和“删除”.通常,对于该网站,每个选项都对应于其自己的PHP脚本页面.例如,“视图”对应于list_customers.PHP. “编辑”对应于edit_customer.PHP.

(B)可能发生的另一件事是该选项的逻辑在“通用”脚本页面中.我的意思是将几个选项的逻辑分组为一页.这样的一个示例是“删除”.在删除客户,工作订单或报价之前,将其定向到名为auth.PHPPHP脚本页面,以确保只有管理员可以删除. auth.PHP中还包含检查是否是管理员登录以及删除客户,工作单或报价的逻辑.另一个示例是“客户”的所有“搜索”选项.尽管它具有自己的页面search_customer.PHP,但实际搜索的逻辑实际上在list_customers.PHP中.所有搜索(包括搜索客户,报价或交货报告)都遵循这种模式.搜索代码实际上位于相应的list _ *.PHP页面中.

我很难找到一种不会使其变得更加复杂的设计模式.我发现的大多数对象都是面向对象的,而这个清单肯定不是.工厂模式当然无济于事,因为我找到它的唯一有用的方法是,如果登录名(用户名和密码)更改为类似的内容(用户名,密码,ID号).但是,我认为这将不会有用,因为只有2个PHP页面具有登录功能.

我还查看了是否可以将所有搜索逻辑都做成一个对象.但是然后,每种类型的搜索都必须具有自己的方法(因为它们正在查询差异表),并且与当前设置不会有很大不同(每种搜索当前位于相应的列表PHP页面中.)

我发现唯一有用的是正则表达式的设计模式.程序中的表格未经验证.您有什么想法吗?

此外,该课程的主题是软件质量.我个人认为,设计模式会使该网站更加复杂,因为它不是一个大项目.但是我的同学争辩说,由于它不是面向对象的,因此它不那么可维护.但我当时在想,PHP并非是面向对象的,对吗?因此,强迫它符合OO设计模式只会使事情变得混乱.

你怎么看?是否有任何适用于这种情况的设计模式?

解决方法:

设计模式是常见问题的通用解决方案.您不使用设计模式来使用设计模式.您可以使用它们来解决特定问题.最突出的设计模式是GOFPOEAA的设计模式.其中一些易于实施,例如“策略”,而另一些则需要更多的建筑思想.

您甚至不知道自己使用的某些设计模式,例如,您的动作脚本对我来说就像TransactionScript.是的,您可以将它们制作为PageController以减少脚本中的样板代码.然后,您可以添加FrontController以减少PageControllers中的样板.既然如此,为什么不将业务逻辑和UI与MVC分开呢?

通常,从长远来看,设计模式将使您的代码更具可维护性,尤其是如果您保留实施GRASPSOLIDDRY.设计模式也将使您的代码更易于理解和讨论,因为模式是定义明确的术语.告诉开发人员这段代码是Factory,他/她将了解您.

但是,是的,设计模式还可能使您的代码更加复杂,因此您应该知道从何处停止以防止过度设计.并不是说,不要使用它们,而是在可以解决特定问题的地方合理使用它们.还可以考虑学习常见的AntiPatterns.

由于该课程是关于软件质量的,因此您应该意识到,不是通过代码中的设计模式数量来衡量软件质量.软件质量是通过许多指标来衡量的,并且存在用于衡量它们的工具.看看Quality Assurance in PHP Projects有个好主意.

在旁注中,“设计模式”不一定必须与OOP一起使用. OOP只是组织代码的一种好方法,许多设计模式确实针对但不限于OOP. MVC可以与过程代码一起使用.您可以将Strategy和Factory与匿名函数一起使用,FrontController可以是简单的switch / case语句,依此类推.这是因为设计模式是体系结构的蓝图,并且在很大程度上与语言和范式无关.

大佬总结

以上是大佬教程为你收集整理的不是OO的PHP设计模式,最适合这种情况的PHP模式全部内容,希望文章能够帮你解决不是OO的PHP设计模式,最适合这种情况的PHP模式所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: