设计模式:建造者模式

  GoF定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。

  在应用程序中,一些功能基本固定,但是这些功能的组合却可能经常变化,这个时候可以将将变与不变分离开,创建和提供不同的实例。

  PHP代码:

<?php
	class Caller{
		private $BuilderObj;
		function __construct(Builder $BO){
			$this->BuilderObj=$BO;
		}
		function ToDo(){
			$this->BuilderObj->ActionA();
			$this->BuilderObj->ActionB();
			$this->BuilderObj->ActionC();
		}
	}
	abstract class Builder{
		abstract function ActionA();
		abstract function ActionB();
		abstract function ActionC();
	}
	class BuilderAAA extends Builder{
		function ActionA(){
			echo "BuilderAAA->ActionA().<br>";
		}
		function ActionB(){
			echo "BuilderAAA->ActionB().<br>";
		}
		function ActionC(){
			echo "BuilderAAA->ActionC().<br>";
		}
	}
	class BuilderBBB extends Builder{
		function ActionA(){
			echo "BuilderBBB->ActionA().<br>";
		}
		function ActionB(){
			echo "BuilderBBB->ActionB().<br>";
		}
		function ActionC(){
			echo "BuilderBBB->ActionC().<br>";
		}
	}

	(new Caller(new BuilderAAA))->ToDo();
	echo "<br>";
	(new Caller(new BuilderBBB))->ToDo();
?>

  输出:

BuilderAAA->ActionA().
BuilderAAA->ActionB().
BuilderAAA->ActionC().

BuilderBBB->ActionA().
BuilderBBB->ActionB().
BuilderBBB->ActionC().

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值