php – Zend_Registry:现实生活中的例子
你觉得
Zend_Registry有用吗?
它应该用于哪些任务?不是吗? 变量的全局状态不是一个好习惯.
引用
PoEAA on Registry Pattern:
我使用注册表(当我使用它时)的主要原因是因为它创建了一个易于访问的应用程序范围.使用注册表,我不必在全球范围内丢弃对象;只有注册表本身是全球性的.从任何地方查找我扔进注册表的任何内容都很方便,包括模型: > Zend_Cache,Zend_Translate,重要的应用程序路径等 然而,就像Singletons一样,Registry经常不受欢迎.这是一个article by Brandon Savage with some thought about why not to use the Registry.针对书记官处的主要论点是 >它使单元测试更难 那些投票反对注册管理机构的人通常会提倡使用Dependency Injection,尽管应该注意的是,一旦你得到了它的实例,你也可以注入注册表.但是,您没有Inversion of Control,因为using对象将从Registry中提取它所需的内容.使用注册表作为服务定位器是一种有效的方法. 见article by Martin Fowler about ServiceLocator vs. Dependency Injection. 正如您对问题的评论中指出的那样,Zend_Registry不是一个严格的单身人士.除了使用Zend_Registry :: getInstance()获得的全局实例外,您还可以根据需要实例化多个实例.所以对象可以拥有自己的注册表.但是当以这种方式使用Registry时,它基本上只是一个美化的ArrayObject. 最后注意事项:就像所有设计模式一样,如果适用于您的问题,请使用它. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |