PHP工厂模式和单例模式
2016-03-11 23:14
555 查看
设计模式无论任何语言都是通用 的,java的设计模式达23种之多,PHP种也有一些设计模式,下面简单说下工厂模式和单例模式.
首先准备文件结构大概是下面这个样子:
![](http://img.blog.csdn.net/20160311230732339?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
Object.php文件:
ObjectFactory.php文件:
autoload.php文件 :
工厂模式的好处就是我们创建对象的方法是统一的,不是在我们需要的地方直接使用new进行创建,降低了模块之间的耦合度,并且当我们修改了类的名称我们只需要在工厂类里面修改一处即可完成。
单例模式好处是我们使用对象的时候不是每次使用都去new一个新对象出来,这样造成很大的开支和浪费,单例模式保证我们程序运行过程中对象产生一次,节省了开支。
通常模式都是放在一起使用的。
首先准备文件结构大概是下面这个样子:
Object.php文件:
<?php /** * Created by PhpStorm. * User: Administrator * Date: 2016/3/10 * Time: 11:57 */ namespace Factory; class Object { private static $instance; /** * 单例模式 */ private function __construct(){ } public static function getInstance(){ if(self::$instance){ return self::$instance; } self::$instance = new self(); return self::$instance; } public function say(){ echo __METHOD__; } }
ObjectFactory.php文件:
<?php /** * Created by PhpStorm. * User: Administrator * Date: 2016/3/10 * Time: 11:56 */ namespace Factory; class ObjectFactory { /** * 工厂模式 */ public static function createObject(){ $obj = Object::getInstance(); return $obj; } }
autoload.php文件 :
<?php /** * Created by PhpStorm. * User: Administrator * Date: 2016/3/10 * Time: 12:13 */ spl_autoload_register('autoload'); function autoload($className){ $classFile = ROOT.'/'.str_replace('\\','/',$className).'.php'; include $classFile; }index.php文件:
<?php /** * Created by PhpStorm. * User: Administrator * Date: 2016/3/10 * Time: 11:55 */ define('ROOT',__DIR__); require 'autoload.php'; $obj = Factory\ObjectFactory::createObject(); $obj->say();
工厂模式的好处就是我们创建对象的方法是统一的,不是在我们需要的地方直接使用new进行创建,降低了模块之间的耦合度,并且当我们修改了类的名称我们只需要在工厂类里面修改一处即可完成。
单例模式好处是我们使用对象的时候不是每次使用都去new一个新对象出来,这样造成很大的开支和浪费,单例模式保证我们程序运行过程中对象产生一次,节省了开支。
通常模式都是放在一起使用的。
相关文章推荐
- win8 wampserver2.5 php_mongo.dll安装
- yii2 win下 安装kartik拓展时出错
- Yii createCommand CURD操作+个人总结
- (13) PHP 随笔---Smarty模板引擎 缓存的高级应用 22
- (12) PHP 随笔---Smarty模板引擎 单模板多缓存、局部不缓存 20--21
- (11) PHP 随笔---Smarty模板引擎 变量调节器、缓存处理 17--19
- (10) PHP 随笔---Smarty模板引擎 布局/继承使用
- DOM offsetParent
- yii2构造方法
- PHP函数 ------ ctype_alnum
- ThinkPHP3.2.3建立项目模板和模板赋值
- PHP 对于 MYSQL 基础操作
- java 时间戳和PHP时间戳的转换
- FileOutputStream filenotfound的错误
- poj2505-A multplication game
- html表单结合php实现上传文件功能并且监控文件上传的进度
- 单例模式与静态变量在PHP中 (转载)
- PHP学习笔记(1)
- ucenter 简单分析与同步机制
- PHP学习笔记(1)