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)
?>
原文地址:https://www.cnblogs.com/xiaodouding/p/6405024.html