首页 > 其他 > 详细

设计模式:简单工厂和单例工厂

时间:2017-09-22 23:17:06      阅读:277      评论:0      收藏:0      [点我收藏+]
 1 <?php
 2 /**
 3  *  纯粹工厂类
 4  */
 5 /*class Factory {
 6     public static function getOBJ($class_name) {
 7         include_once ‘./‘.$class_name.‘.class.php‘;
 8         return new $class_name; //可变类
 9     }
10 }
11 */
12 
13 /**
14  *  cun工厂类
15  */
16 class Factory {
17     /*
18      生产单例对象
19      @param string $class_name 获得对象所需要的类名
20      @param object 单例对象
21     */
22      public static function getOBJ($class_name) {
23          //键 => 值
24          // 类名 => 该类已经实例化了的对象
25          static $obj_list = array();
26          // 判断当前的类有没有被实例化
27          if (!isset($obj_list[$class_name])) {
28              //说明没有被实例化,所以需要实例化
29              include_once ‘./‘.$class_name.‘.class.php‘;
30              $obj_list[$class_name] = new $class_name;
31          }
32          return $obj_list[$class_name];
33      }
34 }

调用方法:

 1 include ‘./Factory.class.php‘;
 2 $stu1 = Factory::getOBJ(‘Student‘);
 3 $stu2 = Factory::getOBJ(‘Student‘);
 4     echo "<pre>";
 5     var_dump($stu1);
 6     echo "</pre>";
 7     echo "<hr>";
 8 
 9     echo "<pre>";
10     var_dump($stu2);
11     echo "</pre>";
12     echo "<hr>";

技术分享

 

 

工厂模式

概念

也是一种设计模式!

工厂模式的含义就是:设计一个类(此时这个类就叫做“工厂类”),该类的作用就是帮助其他的类“生产”对象!

简单工厂

技术分享

技术分享

技术分享

纯粹工厂

以上代码

单例工厂

也是一种单例的实现,但不是“三私一公”的实现,而是在生产对象的工厂类中实现单例效果!

设计模式:简单工厂和单例工厂

原文:http://www.cnblogs.com/mrszhou/p/7577299.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!