我为我的项目使用php OO。我的应用程序中有很多家庭,因此我必须使用开关,并在每个需要检查家庭的文件中执行此操作。所以我觉得这样的表演是受到影响的。所以有什么办法可以消除这些开关情况,并使用一些设计模式或类似的东西。目前的想法是为每个家庭都有一个单独的代码库,我不完全满意。所以寻找各种选项来解决这个问题。OO代码的改进php
回答
我只能从他的书“重构:改进现有代码的设计”中引用Martin Fowler。
switch语句
之一的 面向对象的代码的最明显的症状是其 比较缺乏开关(或情况)的 语句。开关 声明的问题基本上是 重复的问题。通常你会在不同的地方找到与 程序相同的 开关语句。如果您在 中添加了一个新的子句给交换机,那么您的 必须找到所有这些交换机, 语句并对其进行更改。 面向对象的 多态性概念为您提供了一种优雅的方式 来处理这个问题。
大多数时候你看到一个switch语句 你应该考虑多态。 问题是多态性应该发生的地方 。开关语句 通常会打开一个类型代码。你想要 方法或类的主机类型 代码值。因此,使用提取方法 提取switch语句,然后使用 Move方法将其获取到需要多态性的类 。在 那一点你必须决定是否 用 替换类型代码或替换类型代码 状态/策略。当您设置了 继承结构时,可以使用 将条件替换为多态性。
考虑购买和阅读这本书,这是我读过的最珍贵的作品之一。
+1。真棒书。 – Gordon 2011-03-25 12:04:22
该模式将是Refactor Conditional With Polymorphism。
这个想法是使这些不同的家庭类型成为他们自己的对象。链接的文章摘自Martin Fowler的书Refactoring: Improving the Design of Existing Code,该文章已在其他答案中引用。实际上,链接的网站包含了本书的全部内容。
哎呀,对不起,你是对的 – dantuch 2011-03-25 12:21:52
- 1. 可视化OO PHP代码
- 2. php代码改进重构
- 3. 在OO中写这个PHP代码
- 4. 导航OO JS代码
- 5. PHP tidy关闭代码改进
- 6. 这个PHP代码可以改进吗?
- 7. OO PHP书写脚本的可能改进
- 8. 改进Autolayout代码
- 9. JavaScript代码改进
- 10. 改进VBA代码
- 11. 正确的代码改进
- 12. 改进LDAP的Java代码
- 13. 需要改进的代码
- 14. PHPStorm的PHP代码缩进
- 15. 修改PHP代码从php
- 16. PHP:剖析代码和严格环境〜改进我的编码
- 17. OO PHP误解
- 18. 将程序代码转换为OO
- 19. php模板OO编码问题
- 20. php的二进制代码(编译php)
- 21. knitr - 更改代码缩进
- 22. 该代码如何改进
- 23. 改进代码,弦乐
- 24. 改进性能代码?
- 25. 如何改进此代码
- 26. 改进此Jquery代码
- 27. 我如何改进代码?
- 28. 如何改进代码Laravel?
- 29. 改进代码设计
- 30. JavaScript/JQUERY改进代码
有些代码可以帮助我们帮助您。 – Dutchie432 2011-03-25 11:31:03
工厂模式? – 2011-03-25 11:34:20
@Mark Baker或策略 - 它取决于.. – dantuch 2011-03-25 11:54:19