前言:
抽象工厂模式。
1.多条抽象产品类,每个产品类线衍生多条具体产品。
2.一个抽象工厂类衍生多条具体的工厂类。
3.每个具体的工厂类下可以生产多种产品.
<?php //多个抽象产品类 //产品a线 interface ProductLineFirst { public function show(); } //具体产品 class ProductFirstA implements ProductLineFirst { public function show() { echo "i am producta from productlinefirst"; } } class ProductFirstB implements ProductLineFirst { public function show() { echo "i am productb from productlinefirst"; } } //产品b线 interface ProductLineSecond{ public function show(); } class ProductSecondA implements ProductLineSecond { public function show() { echo " i am producta from productlinescond"; } } class ProductSecondB implements ProductLineSecond { public function show() { echo "i am productb from productlinescond"; } } //工厂生产模式 // interface Factory { public function createProductFirst(); public function createProductSecond(); } //一个具体工厂可以创建多个具体产品实例 class FactoryA implements Factory { public function createProductFirst() { return new ProductFirstA(); } public function createProductSecond() { return new ProductFirstB(); // TODO: Implement createProductSecond() method. } } class FactoryB implements Factory{ public function createProductFirst() { return new ProductSecondA(); } public function createProductSecond() { return new ProductSecondB(); } } $factory=new FactoryA(); $factorya=$factory->createProductFirst(); $factorya->show(); echo "<br/>"; $factoryb=$factory->createProductSecond(); $factoryb->show();