2016年12月15日 工厂模式,单例模式
//1.单例模式
//目的:为了控制对象的数量(只能够有一个,相当于类的计划生育)
//做法
//1.将类的构造函数做成私有的
//2.在类里面做了一个公有的函数来造对象
//3.将该函数变为静态的
//4.在函数里面加控制
class Ren
{
public $name;
//成员变量用来存储该对象
static public $dx;
private function __construct()
{
}
static function DuiXiang()
{
if(empty(self::$dx))
{
self::$dx = new Ren();
}
return self::$dx;
}
}
$r = Ren::DuiXiang();
$r->name = "张三";
$r1 = Ren::DuiXiang();
$r1->name = "李四";
var_dump($r);
?>
<?php
//工厂模式
abstract class YunSuan
{
public $a;
public $b;
function Suan()
{
}
}
class Jia extends YunSuan
{
function Suan()
{
return $this->a+$this->b;
}
}
class Jian extends YunSuan
{
function Suan()
{
return $this->a-$this->b;
}
}
class Cheng extends YunSuan
{
function Suan()
{
return $this->a*$this->b;
}
}
//做一个工厂类
class GongChang
{
static function ShengChan($fuhao)
{
switch($fuhao)
{
case "+":
return new Jia();
break;
case "-":
return new Jian();
break;
case "*":
return new Cheng();
break;
}
}
}
//算加法
$suan = GongChang::ShengChan("*");
$suan->a = 10;
$suan->b = 5;
echo $suan->Suan();
?>