- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
你找到Zend_Registry了吗?有用吗?
它应该用于哪些任务?哪个不是?
变量的全局状态不是一个好习惯。主要对象可以通过 $front->setParam('paramName', $object)
注入(inject)全局状态,那么 Zend_Registry 的目的是什么?
最佳答案
引用 PoEAA on Registry Pattern :
When you want to find an object you usually start with another object that has an association to it, and use the association to navigate to it. Thus, if you want to find all the orders for a customer, you start with the customer object and use a method on it to get the orders. However, in some cases you won't have an appropriate object to start with. You may know the customer's ID number but not have a reference. In this case you need some kind of lookup method - a finder - but the question remains: How do you get to the finder?
我使用注册表(当我使用它时)的主要原因是因为它创建了一个易于访问的应用程序范围。使用注册表,我不必在全局范围内乱扔对象;只有注册表本身是全局的。查找我从任何地方扔进注册表的任何东西都很方便,包括模型:
然而,就像单例一样,Registry 经常被人反对。这是一个 article by Brandon Savage with some thought about why not to use the Registry .反对注册表的主要论点是
那些投票反对注册表的人通常提倡使用 Dependency Injection ,尽管应该注意的是,一旦获得注册表实例,您也可以注入(inject)它。你没有 Inversion of Control然后,因为使用对象将从注册表中提取它需要的东西。不过,使用注册表作为服务定位器是一种有效的方法。
查看此 article by Martin Fowler about ServiceLocator vs. Dependency Injection .
就像在对您的问题的评论中指出的那样,Zend_Registry
不是严格的单例。除了使用通过 Zend_Registry::getInstance()
获得的全局实例之外,您还可以在需要的地方实例化多个实例。所以对象可以有自己的注册表。但是当以这种方式使用 Registry 时,它基本上只是一个美化的 ArrayObject。
最后说明:就像所有设计模式一样,如果适用于您的问题,请使用它。
关于php - Zend_Registry : real life examples,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2531168/
我试图通过 DexClassLoader 从 jar 文件加载类: public class AndroidClassLoader implements ClassLoader { priva
我试图了解如何为自己的类型编写trait和impl,以处理一些输入数据。我从一个简单的示例开始,在该示例中,我想使用1, 2, 3, 4处理输入的trait Processor。一个实现将跳过第一个元
生命游戏的算法就不多解释了,百度一下介绍随处可见。 因为网上大多数版本都是基于pygame,matlab等外部库实现的,二维数组大多是用numpy,使用起来学习成本比较高,所以闲暇之余写一个不用外
若凌° Provence - wirepuller 阴谋者 。 交换末日- Brave Hold on Welcome to my life 匪我思存 · L⊙ve/
我在一个网站上工作,用户输入几个名字,它在模板上以漂亮的字体呈现,以便稍后打印和跟踪到其他东西(纸、木头、金属等)。 让我们假设模板是 4"x 3"实物大小。是否可以在所有设备上显示 4"x 3"的图
这是一个有点理论性的问题。在编程作业中,约翰康威告诉我们要实现生命游戏。作为一项附加任务,我们被要求修改程序,以便它可以检测最多四代的模式重复。例如,给定这个特定的游戏“种子”,程序应该像这样: -
我目前正在使用JavaScript编写Conways生活游戏,但是遇到了一些我不知道如何解决的错误。想知道是否有人可以帮助我解决这些问题? 当前在Google Chrome浏览器中显示4个错误,具体如
我和四边形邻居一起写了经典游戏“生活”。当我在调试中运行它时,它说: 连续版本:4.2s 并行版本:1.5s 好的,很好。但是如果我在 release 中运行它,它会说: 连续版本:0.46s 并行版
我正在制作一个 Android 应用程序,它将包含两项服务,每 24 小时持续发送一次有关用户手机使用情况的数据。 用户应该执行该应用程序,切换按钮以启用手机使用记录,然后用户应该能够使用他的手机进行
我有一些可用的 Game of Life 代码。它将每个种群保存为位图。这是输出的样子(裁剪): 在清理代码时,我发现如果我注释掉或以其他方式删除第60行: cout #include #incl
难道后面函数返回的指针是不可访问的吗? char *foo(int rc) { switch (rc) { case 1: return("on
简介 细胞自动机(又称元胞自动机),名字虽然很深奥,但是它的行为却是非常美妙的。所有这些怎样实现的呢?我们可以把计算机中的宇宙想象成是一堆方格子构成的封闭空间,尺寸为N的空间就有NN个格子。而每一
Everything you want comes after you stop looking for it. 当你不再寻觅,你想要的也就来了。 I’m counting the days ti
正如主题所述,我很难想象在现实生活中的示例中何时何地使用可恢复异常,以及我们可以通过使用它们获得哪些有效优势。 我能想象的是,一个子系统已连接,比方说通过 RFC 连接到一个 session ,该 s
什么是“双生命”模块? perldelta for Perl 5.14 中有提到. 最佳答案 Dual Life 模块是存在于两个断开连接的源存储库中的模块,通常意味着在 Perl 核心(与 perl
我想自定义站点管理员角色权限,即我需要启用一项功能来创建相应站点下的站点管理用户。我怎样才能做到这一点?我需要用 Hook 来实现它还是需要创建 EXT?或者还有其他更简单的方法来实现这一目标吗?我需
我在 uminokirin.com 有一个用榆树编写的 Conway 生命游戏的基本实现。 . 来源可见here . 该程序允许用户调整环形网格的大小、单击单元格以更改其状态以及随机化世界。它适用于我
我已经研究这段代码很长时间了,但我似乎无法弄清楚。我的代码的顶部部分用于预填充网格。但由于某种原因,我无法让我的形象按照预期移动和成长。请帮助我!! import java.util.Random;
package edu.bsu.cs121.mamurphy; import java.util.*; import java.io.*; import javax.swing
我想要生命之花,就像这个:https://jsfiddle.net/5ak8P var canvas = document.getElementById('canvas'), context
我是一名优秀的程序员,十分优秀!