【问题标题】:PHP Service: Singleton or StaticPHP 服务:单例或静态
【发布时间】:2016-03-15 13:13:51
【问题描述】:

我想通过提供服务将我的数据操作代码与控制器分开。

我在问自己,是像 Service::getInstance()->function()(Singleton)还是干脆 Service::function()(静态)这样的事情更好

通常,我会做一个单例服务,人们说它更可测试。

但就我而言,该服务将使用Article::find($id) 之类的内容。 所以我的问题是:如果这个单例使用静态方法,是否有必要制作一个单例?我认为在这种情况下,可测试性不会改变任何事情。这样对吗?我想以正确的方式做这件事,所以我需要你的帮助。

非常感谢:)

【问题讨论】:

    标签: php design-patterns service static singleton


    【解决方案1】:

    为什么不能使用对象的实例?这样您就可以注入所需的依赖项:

    $articleObject = new Article($databaseForExample);
    $article = $articleObject->find($id);
    

    【讨论】:

    • 我正在使用一个看起来很像 Laravel 的自定义框架。所以找到一个对象就是这样完成的,但我只想以正确的方式将我的验证代码与控制器分开
    • 我自己对 Laravel 并不熟悉。通常,您应该对要初始化一次的对象使用单例,例如数据库或缓存服务。对于所有其他类,如果您需要类似的功能,只需创建一个新实例。没有理由使用静态方法来查找/获取帖子。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-23
    • 2012-09-25
    • 2014-10-05
    • 1970-01-01
    • 1970-01-01
    • 2010-09-26
    相关资源
    最近更新 更多