单(单)模式和罕见的多(多例)模式控制应用程序中的类的数量。作为一个架构名称,一个简单的例子只能实例化一次,只有一个目标,和多个实例可以被实例化多次。

基于单例的特性,我们经常将应用程序配置为单例,并定义在应用程序的任何时间都可以访问的变量,但有时不建议使用单例,因为它生成全局状态和

单个根对象不封装任何系统函数。在大多数情况下,它使单元测试和调试变得困难。
代码示例:
复制代码代码如下所示:
< PHP
类singletonexample {
私有函数(__construct){} / /防止直接实例化
公共静态功能(提供){ / /不与任何对象相关联
静态$ = null;调用共享变量函数的所有代码,对于静态变量类是不必要的。
如果($ = NULL){
实例=新singletonexample(美元);
}
返回$实例;
}
}
美元singletonexample obj1 =::getInstance();
$ obj2 = singletonexample::getInstance();
var_dump(obj1 = = =美元美元obj2); / /真的就是一个例子
>

多例类似于独生子,不同的是,后者需要getInstance()函数传递的核心价值。
对于一个给定的关键字值只会有唯一的对象实例,如果有多个节点,每个节点有一个唯一标识表,并在一个单一的执行每个节点(如CMS节点)可能会出现反复,然后你可以用多例模式实现这些节点,多例节省内存,并保证该同一对象的多个实例不冲突。
实例:
复制代码代码如下所示:
< PHP
类multitonexample {
私有函数(__construct){} / /防止直接实例化

公共静态函数getInstance($键){
静态实例=数组();
如果(!array_key_exists($键,例如美元)){
{ } =实例美元美元关键新singletonexample();
}
返回$实例($键);
}
};
>