码迷,mamicode.com
首页 > Web开发 > 详细

PHP工厂模式和单例模式

时间:2017-05-03 13:20:47      阅读:207      评论:0      收藏:0      [点我收藏+]

标签:require   index   names   stat   orm   private   static   factory   iss   

首先准备文件结构大概是下面这个样子:

技术分享

Object.php文件:

 1 <?php
 2 /**
 3  * Created by PhpStorm.
 4  * User: Administrator
 5  * Date: 2016/3/10
 6  * Time: 11:57
 7  */
 8 
 9 namespace Factory;
10 
11 
12 class Object {
13 
14 
15     private static $instance;
16 
17     /**
18      * 单例模式
19      */
20 
21     private function __construct(){
22 
23     }
24 
25     public static function getInstance(){
26 
27         if(self::$instance){
28 
29             return self::$instance;
30         }
31         self::$instance = new self();
32 
33         return self::$instance;
34     }
35 
36 
37     public  function say(){
38 
39 
40         echo __METHOD__;
41 
42     }
43 
44 }

 

ObjectFactory.php文件: 

 1 <?php
 2 /**
 3  * Created by PhpStorm.
 4  * User: Administrator
 5  * Date: 2016/3/10
 6  * Time: 11:56
 7  */
 8 
 9 namespace Factory;
10 
11 
12 class ObjectFactory {
13 
14     /**
15      * 工厂模式
16      */
17 
18     public static function createObject(){
19 
20 
21         $obj = Object::getInstance();
22 
23         
24       return $obj;
25     }
26 
27 }

index.php文件:

 1 <?php
 2 /**
 3  * Created by PhpStorm.
 4  * User: Administrator
 5  * Date: 2016/3/10
 6  * Time: 11:55
 7  */
 8 
 9   define(‘ROOT‘,__DIR__);
10 
11   require ‘autoload.php‘;
12 
13   $obj =  Factory\ObjectFactory::createObject();
14 
15   $obj->say();

 

工厂模式的好处就是我们创建对象的方法是统一的,不是在我们需要的地方直接使用new进行创建,降低了模块之间的耦合度,并且当我们修改了类的名称我们只需要在工厂类里面修改一处即可完成。

 

单例模式好处是我们使用对象的时候不是每次使用都去new一个新对象出来,这样造成很大的开支和浪费,单例模式保证我们程序运行过程中对象产生一次,节省了开支。

 

两种通常模式都是放在一起使用的。

 

PHP工厂模式和单例模式

标签:require   index   names   stat   orm   private   static   factory   iss   

原文地址:http://www.cnblogs.com/Xenzo/p/6801225.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!