PHP编程:学习php设计模式 php实现抽象工厂模式
《学习php设计模式 php实现抽象工厂模式》要点: 抽象工厂模式(Abstact Factory)是一种常见的软件设计模式.该模式为一个产品族提供了统一的创建接口.当需要这个产品族的某一系列的时候,可以为此系列的产品族创建一个具体的工厂类. ?PHP编程 三、抽象工厂模式中主要角色 <?php /** * 抽象工厂 */ interface AbstractFactory { /** * 创建等级结构为A的产品的工厂办法 */ public function createProductA(); /** * 创建等级结构为B的产品的工厂办法 */ public function createProductB(); } /** * 具体工厂1 */ class ConcreteFactory1 implements AbstractFactory{ public function createProductA() { return new ProductA1(); } public function createProductB() { return new ProductB1(); } } /** * 具体工厂2 */ class ConcreteFactory2 implements AbstractFactory{ public function createProductA() { return new ProductA2(); } public function createProductB() { return new ProductB2(); } } /** * 抽象产品A */ interface AbstractProductA { /** * 取得产品名 */ public function getName(); } /** * 抽象产品B */ interface AbstractProductB { /** * 取得产品名 */ public function getName(); } /** * 具体产品A1 */ class ProductA1 implements AbstractProductA { private $_name; public function __construct() { $this->_name = 'product A1'; } public function getName() { return $this->_name; } } /** * 具体产品A2 */ class ProductA2 implements AbstractProductA { private $_name; public function __construct() { $this->_name = 'product A2'; } public function getName() { return $this->_name; } } /** * 具体产品B1 */ class ProductB1 implements AbstractProductB { private $_name; public function __construct() { $this->_name = 'product B1'; } public function getName() { return $this->_name; } } /** * 具体产品B2 */ class ProductB2 implements AbstractProductB { private $_name; public function __construct() { $this->_name = 'product B2'; } public function getName() { return $this->_name; } } /** * 客户端 */ class Client { /** * Main program. */ public static function main() { self::run(new ConcreteFactory1()); self::run(new ConcreteFactory2()); } /** * 调用工厂实例生成产品,输出产品名 * @param $factory AbstractFactory 工厂实例 */ public static function run(AbstractFactory $factory) { $productA = $factory->createProductA(); $productB = $factory->createProductB(); echo $productA->getName(),'<br />'; echo $productB->getName(),'<br />'; } } Client::main(); ?> 以上就是使用php实现抽象工厂模式的代码,还有一些关于抽象工厂模式的概念区分,希望对大家的学习有所帮助.PHP编程 欢迎参与《学习php设计模式 php实现抽象工厂模式》讨论,分享您的想法,编程之家 52php.cn为您提供专业教程。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |