【问题标题】:Using Two Different Class In Each Other As Dependency Is Bad Practice? [closed]在彼此中使用两个不同的类作为依赖项是不好的做法吗? [关闭]
【发布时间】:2019-11-08 00:13:17
【问题描述】:

如果我们使用两个不同的类作为依赖会发生什么。它是否会导致任何关键问题,例如内存泄漏?或者任何烦人的问题..

例如

class Application {
    private $container;

    public function __construct(Container $container)
    {
        $this->container = $container;
    }
}

class Container {
    private $app;

    public function setApp(Application $application)
    {
        $this->app = $application;
    }
}

据我所知,对象通过引用传递,上面的每个对象都会分配一定数量的内存。但我不确定它是否会导致任何其他问题..

我知道这个问题听起来很傻,但我想知道您的意见和建议。

【问题讨论】:

  • 完全没问题,但我不确定你打算如何构建它。
  • @AlexBarker 我认为这有点不可能。我需要为其中之一做二传手。对不起,当我问这个问题时,我没有集中注意力

标签: php oop dependency-injection inversion-of-control


【解决方案1】:

内存泄漏并不是真正的问题。现代垃圾收集器——寻找可回收内存的工具——寻找所谓的“循环引用”,即一个对象引用另一个对象的位置,反之亦然。 PHP的垃圾回收器会检测到这个循环引用存在,只要没有外部引用指向ApplicationContainer实例,垃圾回收器就会按预期回收分配的内存。

此外,内存泄漏只有在内存未被释放时才是真正的问题。当 PHP 进程结束时,无论是否发生垃圾回收,都会释放该内存。鉴于 PHP 有一个最大的运行时间,你不应该在 PHP 中遇到内存泄漏,除非你正在做一些非常奇怪的事情。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-04
    • 2017-03-17
    • 2018-06-26
    • 2018-07-01
    • 2015-11-07
    • 2021-08-29
    • 1970-01-01
    • 2016-08-18
    相关资源
    最近更新 更多