php常用几种设计模式的应用场景
来源:互联网 发布:背四级单词软件 编辑:程序博客网 时间:2024/05/22 05:23
1.单例设计模式
所谓单例模式,即在应用程序中最多只有该类的一个实例存在,一旦创建,就会一直存在于内存中!
单例设计模式常应用于数据库类设计,采用单例模式,只连接一次数据库,防止打开多个数据库连接。
一个单例类应具备以下特点:
单例类不能直接实例化创建,而是只能由类本身实例化。因此,要获得这样的限制效果,构造函数必须标记为private,从而防止类被实例化。
需要一个私有静态成员变量来保存类实例和公开一个能访问到实例的公开静态方法。
在PHP中,为了防止他人对单例类实例克隆,通常还为其提供一个空的私有__clone()
方法。
单例模式的例子:
<?php /*** Singleton of Database*/class Database{ // We need a static private variable to store a Database instance. privatestatic $instance; // Mark as private to prevent it from being instanced. private function__construct() { // Do nothing. } private function__clone() { // Do nothing. } public static function getInstance() { if (!(self::$instanceinstanceofself)) { self::$instance = newself(); } returnself::$instance; }} $a =Database::getInstance();$b =Database::getInstance(); // truevar_dump($a === $b);
2.工厂设计模式主要是当操作类的参数变化时,只用改相应的工厂类就可以
工厂设计模式常用于根据输入参数的不同或者应用程序配置的不同来创建一种专门用来实例化并返回其对应的类的实例。
我们举例子,假设矩形、圆都有同样的一个方法,那么我们用基类提供的API来创建实例时,通过传参数来自动创建对应的类的实例,他们都有获取周长和面积的功能。
观察者模式是挺常见的一种设计模式,使用得当会给程序带来非常大的便利,使用得不当,会给后来人一种难以维护的想法。
什么是观察者模式?一个对象通过提供方法允许另一个对象即观察者 注册自己)使本身变得可观察。当可观察的对象更改时,它会将消息发送到已注册的观察者。这些观察者使用该信息执行的操作与可观察的对象无关。结果是对象可以相互对话,而不必了解原因。观察者模式是一种事件系统,意味着这一模式允许某个类观察另一个类的状态,当被观察的类状态发生改变的时候,观察类可以收到通知并且做出相应的动作;观察者模式为您提供了避免组件之间紧密耦。看下面例子你就明白了!
0 0
- php常用几种设计模式的应用场景
- 常用设计模式的应用场景
- 常用设计模式的应用场景
- 一些常用设计模式的应用场景
- 常用设计模式的应用场景
- 常用设计模式的应用场景
- 常用设计模式的应用场景
- 常用设计模式的应用场景
- PHP中常用的几种设计模式
- PHP中常用的几种设计模式
- 常用的设计模式场景
- VC++ 常用设计模式及应用场景
- 常用设计模式及其应用场景
- 几种常用的设计模式
- 几种常用的设计模式介绍
- 几种常用的设计模式介绍
- 几种常用的设计模式介绍
- 几种常用的设计模式
- 百胜建议Oracle资料
- iOS 动画
- CornerStone配置SVN,HTTP及SVN简单使用说明
- java生成验证码配置及编写
- MAVLink——命令参数
- php常用几种设计模式的应用场景
- quick-cocos2dx中AssetsManagerEx的理解
- 在mybatis调用mysql的函数
- Nginx发布1.9.0版本,新增支持TCP代理和负载均衡的stream模块
- java抽象类和接口
- 开发者都应该使用的10个C++11特性
- mysql日期存储为int,mybatis做ORM映射与java.util.Date的转换问题
- 经典的数据结构——栈
- UE4示例项目学习:用Blueprint来创建一个可操作角色(二) 动画蒙太奇篇(Animation Montage)