• 设计模式(工厂模式)


    什么是工厂模式:

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

    实现工厂模式代码:

    //工厂模式:产生对象

    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'));

      }

    }

  • 相关阅读:
    luoguP1160 队列安排 x
    luoguP3366 【模板】最小生成树 x
    cogs服务点设置(不凶,超乖) x
    codevs3269 混合背包 x
    [kuangbin带你飞]专题一 简单搜索 x
    [SWUST1744] 方格取数问题(最大流,最大独立集)
    [SWUST1738] 最小路径覆盖问题(最大流,最小路径覆盖)
    [SWUST1742] 试题库问题(最大流)
    [HDOJ5676]ztr loves lucky numbers(状压枚举,打表,二分)
    [swustoj1739] 魔术球问题 (最大流,最小路径覆盖)
  • 原文地址:https://www.cnblogs.com/wangjingwangjing/p/5284147.html
Copyright © 2020-2023  润新知