zoukankan      html  css  js  c++  java
  • 设计模式:工厂模式和单例模式

      在平常实用类的时候,往往要进行类功能的扩展,如果直接在里面进行扩展,有可能会对类里面的其他功能产生影响,所以在扩展功能的时候就要重新写类,这就要采用继承的方式,如:

     1 class YunSuan()
     2 {
     3        public $a;
     4        public $b;
     5        function Suan()  //造一个运算的方法
     6        {
     7        }  
     8 }
     9 class Jia extends YunSuan()   //造一个加的子类继承父类
    10 {
    11        function Suan()   //重写Suan的方法
    12        {
    13              return $this->a+$this->b;
    14        }  
    15 }

    工厂模式:生产对象

      如果类里面的方法名使用了很复杂的单词命名,就会导致在使用类时必须将类里面的方法名记住,这会在使用类的时候造成不便。采用工厂模式,通过某些特殊的符号来生产相应的类,就会使我们在使用类的时候很方便,如下面一个工厂模式的类:

     1 class gongchang    //造一个工厂模式的类
     2 {
     3       static function shengchan($ysf)  //定义一个生产对象的方法
     4       {
     5            //判断每个符号,并生产相应的类
     6             case "+":
     7                ruturn new Jia();
     8                break;
     9             case "_":
    10                return new Jian();
    11                break;
    12       }
    13 }

      造好里之后,就可以用相应的符号来生成相应的对象,来实现功能:

    $jia  = gongchang::shengchan("+");
    $jia->a = 5;
    $jia->b = 10;
    $jia->suan();

    单例模式:

    在程序中,如果一个类来造了很多对象的话,就会导致服务器出问题,所以我们要控制生成类的个数,这就要用到单例模式,控制每个类只能造一个对象。

    class DBDA
    {
          public static $dx;    //存储对象
          //将构造函数变成私有,避免外界访问
          private function __contruct()
          {
          }
          //生成对象
          static function shengcheng()
          {
                if(empty(self::$dx))
                {
                       $dx = new DBDA();
                }
                return self::$dx;
          }
    }
  • 相关阅读:
    JSON库之性能比较:JSON.simple VS GSON VS Jackson VS JSONP
    mysql存储过程批量插入数据
    mysql 5.7.12 winx64安装配置方法图文教程
    mysql-5.7.12-winx64 安装
    spring下载地址
    jdbc动态切换数据库
    Tomcat7 新的数据库连接池Tomcat jdbc pool介绍和配置
    WebSercice Demo
    面试问题之数据结构与算法:最小生成树算法
    面试问题之数据结构与算法:最大连续子序列和
  • 原文地址:https://www.cnblogs.com/zk0533/p/5662812.html
Copyright © 2011-2022 走看看