设计模式

1、单例模式

class A
{
	private static $_instance = null;
	//禁止构造函数,防止被new
	private function __construct(){}
	//禁止克隆
	private function __clone(){}
	//禁止序列化
	private function __wakeup(){}
	public static function getInstance()
	{
		if(is_null(self::$_instance)){
			self::$_instance = new self();
		}
		return self::$_instance;
	}
}
$a = A::getInstance();

2、工厂模式

//定义一个接口
interface Shape
{
	public function draw();
}

//定义具体的实现类
class Circle implements Shape
{
	public function draw()
	{
		return "I am a Circle";
	}
}

class Square implements Shape
{
	public function draw()
	{
		return "I am a Square";
	}
}

//定义一个工厂类
class ShapeFactory
{
	const CIRCLE = 'circle';
	const SQUARE = 'square';
	private $shape;
	public function __construct($shape)
	{
		$this->shape = $shape;
	}

	public function getShape()
	{
		switch ($this->shape){
			case self::CIRCLE :
				return new Circle();
				break;
			case self::SQUARE :
				return new Square();
				break;
			default:
				return null;
		}
	}
}

//客户端调用

$shape = (new ShapeFactory('circle'))->getShape();
$str = $shape->draw();
var_dump($str);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值