我目前正在开发一个框架,它使用一个对象Core
类(此类具有巨大的功能并使框架正常工作)。该框架遵循 MVC 架构并具有松散耦合的模型、控制、视图类。这些类需要引用Core
课重。到目前为止我所做的是:创建单个对象Core
类并通过 PHP 关键字引用它global
在模型、控制、视图类中。
我不喜欢使用这种方法主要是因为:
- 在我看来,这种方式不是真正的面向对象方式
- IDE (netbeans) 无法为该对象提供文档
Core
class - 对于使用这个框架的开发人员来说是一个痛苦。
-
我真的很担心性能问题- 不知道是否
global
速度较慢或其他什么。
我进行了搜索,没有找到任何有关性能问题的信息。我还搜索了 stackoverflow 并发现使用全局会产生任何开销吗? https://stackoverflow.com/questions/181285/does-using-global-create-any-overhead & PHP中全局变量和函数参数之间的优缺点? https://stackoverflow.com/q/2216340/493329等链接,但它们不包含太多信息。现在我最关心的是性能,所以请帮忙。
我必须同意NevilleK https://stackoverflow.com/questions/7345636/php-global-vairable-overhead-in-a-framework/7345923#7345923,你的 Core` 类听起来像一行神物 http://c2.com/cgi/wiki?GodObject反模式。
对于任何愚蠢到建议使用单例/注册表的人,我建议对这个主题做一些研究。它们创建与经典全局变量相同的全局状态。
全局状态与性能无关(尽管在 php 中它有一些较小的影响),但它创建了不可测试且紧密耦合的代码。
你真的应该调查一下依赖注入。这可能会向您展示另一种方式,不需要这样的Core
您的代码中的类。
为您提供一些额外的视频:
- 全局状态和单例 http://www.youtube.com/watch?v=-FRm3VPhseI
- 不要寻找东西! http://www.youtube.com/watch?v=RlfLCWKxHJ0
- 高级面向对象模式 http://vimeo.com/21173483
- 蛋糕是一个谎言 http://techportal.inviqa.com/2011/03/15/dpcradio-the-cake-is-a-lie/
- 简洁的代码:参数 http://vimeo.com/13439458
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)