php - 扩展单例类

标签 php oop singleton extend

我曾经像这样创建一个单例类的实例:

$Singleton = SingletonClassName::GetInstance();

对于非单例类:

$NonSingleton = new NonSingletonClassName;

我认为我们不应该区分我们如何创建一个类的实例,无论它是否是单例。如果我看一下其他类(class)的看法,我不在乎我们是否需要单例类(class)。所以,我仍然不满意 php 如何处理单例类。我想,我一直想写:

$Singleton = new SingletonClassName;

只是另一个非单例类,这个问题有解决方案吗?

最佳答案

最好反过来 - 提供 factory-method对于非单例,并使用以下方法获取它们的实例:

$NonSingleton = NonSingletonClassName::createInstance();

这是推荐的 Java 最佳实践(在 Effective Java 中),但它适用于大多数面向对象的语言。

关于php - 扩展单例类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2584898/

相关文章:

php - 正则表达式删除除提供的域相关链接之外的外部链接 php

php - 为什么 PHP 中的 Curl Request 有时可以工作而其他人不能?

oop - 从 OOP 的角度来看,在接口(interface)中声明类型/属性是否正确?

java - 这段代码是适配器模式的示例吗?

c++ - 单例或将指针传递给管理器中的静态引用

c++ - 如何在共享库的整个生命周期中存储数据

javascript - 如何创建传递构造函数参数的单例类实例?

php - Laravel DB 首先选择 : The Response content must be a string

php - 尝试在web中显示数据库中的数据,但有些记录没有显示出来

c++ - 由于未打包的非 POD 字段而忽略打包属性