zoukankan      html  css  js  c++  java
  • 设计模式(工厂模式)

    什么是工厂模式:

    根据不同的需求,产生不同的对象。(接收用户提供的参数{类名},创建对应的对象,并返回对象)

    实现工厂模式代码:

    //工厂模式:产生对象

    class Factory{

      //工厂模式不需要创建自己类的对象,因此方法都是静态的

      //@param1 string $class ,需要创建对象的类名

      //@return object,返回的是类的对象,失败返回false

      public static function getInstance($class)

      {

        //加载类

        self::setAutoload();

        //创建对象

        return new $class;

      }

      //自动加载类

      public static function loadAction($class)

      {

        if(is_file("../Action/$class.class.php"))

        {

          include_once "../Action/$class.class.php";

        }

      }

      //自动加载类注册

      public static function setAutoload()

      {

        sql_autoload_register(array('Factory','loadAction'));

      }

    }

    工厂单例模式配合使用:

    class Factory{

      //三私一公

      private function __construct(){}

      private function __clone(){}

      private static $obj=array();

      //工厂模式不需要创建自己类的对象,因此方法都是静态的

      //@param1 string $class ,需要创建对象的类名

      //@return object,返回的是类的对象,失败返回false

      public static function getInstance($class)

      {

        //加载类

        self::setAutoload();

        //创建对象

        if(isset(self::$obj[$class]))

        {}else{

                  self::$obj[$class]=new $class;

        }

        return self::$obj[$class];

      }

      //自动加载类

      public static function loadAction($class)

      {

        if(is_file("../Action/$class.class.php"))

        {

          include_once "../Action/$class.class.php";

        }

      }

      //自动加载类注册

      public static function setAutoload()

      {

        sql_autoload_register(array('Factory','loadAction'));

      }

    }

  • 相关阅读:
    Python 编程入门(2):复杂数据类型(列表,字典)
    Python 编程入门(1):基本数据类型
    编程的智慧总结笔记
    学习 Vim 命令总结
    JS中如何使用radio
    关于模板页调用js的问题
    关于session认证用户名和密码的父类(简单认证)
    如何使用日期格式化函数
    数据库中怎么查询所有的表名
    简单的分页
  • 原文地址:https://www.cnblogs.com/wangjingwangjing/p/5284147.html
Copyright © 2011-2022 走看看