php实现设计模式之 抽象工厂模式

<?php
/*抽象工厂模式:提供一个创建一系统相关或相互依赖对象的接口,而无需指定它们具体的类
 * 创建型模式
 */

//抽象小米工厂,能制造小米一,小米二
abstract class mifactory{
	abstract public function createmione();
	abstract public function createmitwo();
}
//具体工厂:生产白色的小米
class white extends mifactory{
	public function createmione(){
		return new whiteone();
	}
	public function createmitwo(){
		return new whitetwo();
	}
}
//具体工厂:生产黑色的小米
class black extends mifactory{
	public function createmione(){
		return new blackone();
	}
	public function createmitwo(){
		return new blacktwo();
	}
}
//产品接口
interface product{
	public function colorvoice();
}

//白色小米一
class whiteone implements product{
	public function colorvoice(){
		echo 'white one';
	}
}
//白色小米二
class whitetwo implements product{
	public function colorvoice(){
		echo 'white two';
	}
}
//黑色小米一
class blackone implements product{
	public function colorvoice(){
		echo 'black one';
	}
}
//黑色小米二
class blacktwo implements product{
	public function colorvoice(){
		echo 'black two';
	}
}
//现在可以随意创建产品了
$m = new black();
$n = $m->createmitwo();
$n->colorvoice();
?>

  

posted @ 2014-10-30 16:59  tai君  阅读(188)  评论(0编辑  收藏  举报