PHP中的注册表或单例模式?

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了PHP中的注册表或单例模式?脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我现在正在使用 PHP类和对象.在这个问题上,字段和方法名称只是为了让我们了解我在说什么.

它与使用单例和注册表设计模式有关.

现在让我说,我需要访问一个Database对象,Cache对象,Core Settings对象,Session对象几乎在其他所有类中,我将需要访问这些对象.所以我会使用注册表将所有4个对象存储到1个注册表类对象中.然后我可以将我的1个对象传入任何需要访问的对象.所以这听起来很棒,但是如果我有一些类不需要所有这些对象,如果我只需要访问数据库对象或其他类中的Session对象?为了实现,最好只是在这些其他对象中使用单例,或者在这些对象中使​​用我的注册表是一样的?

我不清楚这些对象如何在PHP中工作,以了解是否有任何类型的执行增益(更少的内存使用率,cpu使用率,加载时间).

所以任何有经验的人都可以告诉我,如果使用一个或另一个有任何收益,我在舞台上,我可以去以太方式,而不影响生产时间或任何东西.如果我现在可以使用最好的方法.

@H_777_12@ 这取决于你的应用程序.如果您仍然需要4个课程中的3个课程,那么使用注册表而不是仅仅因为您不需要第四个课程而独立处理3将更为理想.懒惰加载类将是减少内存占用的一种方法,但是当您创建对象时,您需要指示注册表,这与处理单例并没有太大的不同.或者,您可以创建一个n参数构造函数或使用数组来指导您的Registry在构建过程中实例化哪些类.
class Registry {
    public $class1;
    public $class2;

    function __construct($uses) {
        foreach($uses as $class) {
            $this->{$class} = new {$class}();
        }
    }

}

然后通过指定要实例化的类来实例化您的注册表.

$reg = new Registry(array('class1'));

您显然希望您的构造函数处理零参数以认实例化所有类.

脚本宝典总结

以上是脚本宝典为你收集整理的PHP中的注册表或单例模式?全部内容,希望文章能够帮你解决PHP中的注册表或单例模式?所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

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