您的位置:首页 > 其它

面向对象的设计模式

2016-12-15 16:47 281 查看
1、单例模式

目的:为了控制对象的数量(只能够有一个,相当于类的计划生育)
做法
1.将类的构造函数做成私有的
2.在类里面做了一个公有的函数来造对象
3.将该函数变为静态的
4.在函数里面加控制

例:

<?php
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);
?>


2、工厂模式

用来生产对象

例:

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

?>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: