zoukankan      html  css  js  c++  java
  • php 单例模式和工厂模式

    php 单例模型就是在程序中建一个唯一的访问点 也是是说实例化出来的对象是唯一的

    <?php
    class ren
    {
        public $name;
        private static $dx; // 存储对象
      private   function  __construct()
    {
    } 
       public static function xianshi()   //私有的方法是无法实例化的 需要建一个公有的方法来实现
    {
       if(empty(self::$dx))
       {
              return self::$dx=new ren();
       }
      return self::$dex;
    }
    }
    
    $r=ren:: xianshi();
    $r->name="张三";
    var_dump($r)
    ?>

    工厂模式  就是一种类,具有一定的安全性,而且操作也比较方便

    //这种方法可能是我们最先考虑到的 但是如果扩展的话是不安全的
    <?php
    
     class yunsuan 
    {
        public $a;
        public $b;
       function jia()
    {
       return $this->a + $this->b;
    }
       function jian()
    {
        return $this->a - $this->b;
    }
    }
    ?>
    //可以采用重写的方法来扩展,比较安全,但是如果是大容量的改写还是会比较麻烦
    <?php
    
    class yunsuan 
    {
       public $a;
       public $b;
       function suan()
    {
         echo"这是一种运算方法":
    }
    }
    
    class jia extends yunsuan
    {
        function suan()
    {
         return $this->a + $this->b;
       }
    } class jian extends yunsuan { function suan()
    {
         return $this->a - $this ->b;
    }
    }
    ?>
    //这里我们直接用工厂模式来存储 比较简单一些
    
    <?php
    
    class gongchang
    {
       static  function chanpin($name)
       {
            switch ($name)
            {
                    case"+":
                    return new jia();
                    break;
                    case"-":
                    return new jian()
                    break;
                    default:
                     return false;
            }
       }
    }
    $gong= gongchang:chanpin("");
    var_dump($gong)
    ?>
  • 相关阅读:
    点击弹出层以外的区域隐藏弹出层
    css3 animation 动画属性简介
    IdentityServer4 接入自己的用户体系
    分布式事务的实现
    微服务分布式数据管理的挑战
    微服务的数据自治
    SkyWalking 分布式追踪系统
    创建、改进和控制微服务API的版本和契约
    富领域模型和贫血领域模型
    cenos 安装git
  • 原文地址:https://www.cnblogs.com/xiaodouding/p/6405024.html
Copyright © 2011-2022 走看看