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;
          }
    }
  • 相关阅读:
    驼峰匹配
    常量
    bug生命周期&bug跟踪处理
    jmeter——参数化、关联、断言
    jmeter——http、jdbc、soap请求
    APP测试要点
    Android ADB 命令总结
    理解HTTP三次握手和四次握手的过程
    web、pc客户端、app测试的区别
    在RobotFramework--RIDE中把日期转化为整型进行运算
  • 原文地址:https://www.cnblogs.com/zk0533/p/5662812.html
Copyright © 2011-2022 走看看