PHP中的设计模式
来源:互联网 发布:js定时执行 编辑:程序博客网 时间:2024/05/19 12:38
1. 工厂模式
工厂模式(Factory)允许你在代码执行时,动态地创建不同的对象。它之所以被称为工厂模式是因为它负责“生产”对象。工厂方法的参数是你要创建的对象所对应的类名称。
<?phpclass Example{ public static function factory($type) // 工厂方法 { if (include_once 'Drivers/' . $type . '.php') { // 加载对应的类文件 $classname = 'Driver_' . $type; return new $classname; // 返回创建的对象 } else { throw new Exception ('Driver not found'); } }}?>
上面的方式可以动态加载数据库驱动类。如果Example类是一个数据库抽象类,那么,可以这样来生成 MySQL 和 SQLite 驱动对象。
<?php// Load a MySQL Driver$mysql = Example::factory('MySQL');// Load a SQLite Driver$sqlite = Example::factory('SQLite');?>
2. 单例模式
单例模式用于为一个类生成一个唯一的对象,程序运行过程中,只能有一个对象存在。(如:数据库操作类)
单例模式的特点:
- 构造方法私有化,防止在类外部直接创建对象。
- 必须要产生一个对象,使用静态方法,在方法内部实例化对象,且保存到静态属性中。
- 魔术方法__clone()私有化,防止用户复制(克隆)对象实例。
<?phpclass Test{ // 在静态属性中保存类实例 private static $instance; // 构造方法私有化,防止在类外部直接创建对象 private function __construct(){} // 魔术方法__clone()私有化,防止用户复制(克隆)对象实例 private function __clone(){} /** * 获取单例 */ public static function getInstance(){ if(!isset(self::$instance)){ // 在类内部实例化对象 $instance = new Test(); // 或 $instance = new __CLASS__; self::$instance = $instance; } return self::$instance; } }?><?php $obj = Test::getInstance();var_dump($obj);?>
0 0
- PHP 中的设计模式
- PHP中的设计模式
- PHP 中的设计模式详解
- PHP 中的设计模式详解
- PHP 中的设计模式详解
- PHP 实战之设计模式:PHP 中的设计模式
- PHP 实战之设计模式:PHP 中的设计模式
- php中的设计模式之--适配器模式
- php中的设计模式之--命令模式
- php中的设计模式之--迭代器模式
- php中的设计模式之--策略模式
- php中的设计模式之--代理模式
- php中的设计模式之--中介模式
- php中的设计模式之--观察者模式
- php中的设计模式之--门面模式
- atitit.php中的dwr 设计模式
- PHP中的三种基本设计模式
- php中的设计模式之--抽象工厂模式
- inline和override的注意点
- Cola HDU1495
- php字符串函数和数组函数
- Android复习之旅--ListView中Adapter的使用
- Android当中的动画3—自定义Tween Animation
- PHP中的设计模式
- 1048. Find Coins (25)
- macOS 下配置 MAMP 开发环境(Mac + Apache + Mysql + PHP)
- AsyncTask异步任务及异常处理
- 大数据工程师修炼笔记
- 一触即发——App启动优化最佳实践
- android studio安装教程良心版
- 树莓派给家用电器加上智能(红外篇)
- win7 简体中文版/英文版 打开繁体中文文件/软件时乱码问题解决