【问题标题】:php Singleton pattern with Abstract class and Interface带有抽象类和接口的 php 单例模式
【发布时间】:2010-08-26 09:04:55
【问题描述】:

我正在开发一个框架。我也遇到了一些困难。对于数据库,我为不同的 SCDB 创建了抽象类、接口和一些适配器。例如,Mysqli 适配器有构造函数,它以设置数组为参数调用 parent 的构造函数。 Mysqli 类使用下一个方案:

class Hybrid_Db_Adapter_Mysqli extends Hybrid_Db_Adapter_Abstract implements Hybrid_Db_Adapter_Interface {}

我的任务是为这种情况创建一个单例模式。这对数据库有好处,因为我们只能创建一个实例。

我不知道,如何为我创建这个 Singleton。我想知道,我应该在哪里定义 getInstance 函数。

【问题讨论】:

    标签: php design-patterns interface singleton abstract-class


    【解决方案1】:

    当谈到人们开发“只是一个带有我自己的数据库封装类的小框架”时,我可能会有偏见。但无论如何... ;-)

    我可以让您对Inversion of Control Containers and the Dependency Injection pattern 感兴趣,而不是强制用户使用单例吗?

    【讨论】:

    • 是的 VolkerK - 重新发明轮子?也许这是一项学术活动。
    • 你有时只有在犯下别人之前犯过的同样错误时才能学到一些东西。
    【解决方案2】:

    这在PHP site上有解释

    关键是使用静态属性来存储对象的实例并将构造私有化,这样就无法创建新实例。

    【讨论】:

    • 我知道如何共同创建 Sigleton。我不知道,在我的情况下如何做到这一点。因为,我已经阅读了 php.net 中的模式。
    • 哦,对了。也许那么写你的问题更好。 '我不知道,如何为我创建这个 Singleton' 行。建议你不知道热写一个单例。
    猜你喜欢
    • 2016-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-19
    • 1970-01-01
    • 2010-12-19
    相关资源
    最近更新 更多