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();

?>

原文地址:https://www.cnblogs.com/F4natasy/p/6186859.html