学习PHP设计模式PHP实现单示例模式(单件)

学习PHP设计模式PHP实现单示例模式(单件)
确保一个类只有一个实例,并提供一个全局访问点来访问它。

单件模式有三个特点:

1。类只有一个实例

2,它必须自己创建这个实例。

3,该示例必须提供给整个系统本身。

一、单例模式结构图
两。单例模式中的主要角色

单例定义了一个允许客户访问其惟一实例的实例操作。实例是一个类方法

三。单一案例模型的优点

1。对唯一实例的受控访问

2。缩小命名空间单模式是对全局变量的一种改进,它避免了存储唯一实例的全局变量污染命名空间。

三.允许操作和表示的精英单例类可以有子类,并且很容易用这个扩展类的实例来配置应用程序

4。允许变量数量的实例(多个示例)

5。比类操作更灵活

四。单模式应用场景

1。当一个类只有一个实例时,客户可以从一个众所周知的访问点访问它。

2,当这个唯一实例应该包含可扩展,用户应该能够使用一个扩展的实例不改变代码。

五,单例模式和其他模式}

工厂方法模式(工厂方法模式):单模式使用工厂模式提供它自己的实例。

抽象工厂模式(抽象工厂模式):抽象工厂模式可以作为单例模式使用,特定的工厂类被设计为单一类。

生成器模式(生成器模式):可以将构建模式设计为具体的构建类的单个模型。

五,单例php示例

< PHP

*懒鬼型单
* /
类单{
*静态完成变量保存全局实例
* /
私有静态_instance美元= null;
*私有化的默认施工方法,以确保外部世界不能直接实例化
* /
私有函数__construct(){
}
*静态工厂方法来返回此类的惟一实例
* /
公共静态函数getInstance(){
如果(is_null(自::$ _instance)){
自::_instance美元=新单();
}

回归自我::_instance美元;
}
*防止用户克隆实例
* /
公共功能__clone(){
('clone死是不允许的。。e_user_error);
}
*测试方法
* /
公共功能测试(){
echo'singleton测试!;
}

}
*客户端
* /
客户端类{
*主程序。
* /
公共静态函数main(){
例如:独生子女:美元= getInstance();
$实例>测试();
}
}

客户::主();
>
以上是使用php实现的单模式代码,和一些单模式的概念区别,希望能对你有所帮助。
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部