PHP中的设计模式-创建型-工厂方法模式
2018-02-06 16:52
417 查看
说明:
工厂方法模式, 简单工厂模式, 静态工厂模式 这三者 都是 抽象工厂模式的简化版本, 单独针对某一方面
本模式重点表述, 具体的工厂使用不同的方式 来生产产品
实现代码:
工厂方法模式, 简单工厂模式, 静态工厂模式 这三者 都是 抽象工厂模式的简化版本, 单独针对某一方面
本模式重点表述, 具体的工厂使用不同的方式 来生产产品
实现代码:
<?php /** * 工厂方法模式示例 * User: 蓝冰大侠 */ class CFactoryMethod extends SController { public function index() { //通过A工厂生成产品 $factory=new FactoryA(); $obj=$factory->create('Product'); var_dump($obj); //object(ProductX)#9 (1) { ["name":protected]=> string(9) "A-Product" } //通过B工厂生成产品 $factory=new FactoryB(); $obj=$factory->create('Product'); var_dump($obj); //object(ProductX)#8 (1) { ["name":protected]=> string(9) "B-Product" } } } //定义产品基类(抽象) abstract class Product { protected $name; public function __construct(string $name) { $this->name = $name; } } //定义工厂基类(抽象),工厂可以生成产品 abstract class AbstractFactory { //具体工厂子类必须实现,但不对外 abstract protected function createProduct(string $name): Product; //对外提供创建产品的方法 public function create(string $name){ return $this->createProduct($name); } } //定义X产品,也可根据需要,定义 Y,Z产品 class ProductX extends Product { //X产品的具体实现细节 } //定义工厂A class FactoryA extends AbstractFactory { protected function createProduct(string $name): Product { return new ProductX('A-'.$name); } } //定义工厂B class FactoryB extends AbstractFactory { protected function createProduct(string $name): Product { return new ProductX('B-'.$name); } }
相关文章推荐
- 《Android之大话设计模式》--设计模式 创建型模式 第二章:工厂方法模式
- 设计模式->创建型模式->工厂方法模式
- PHP中的设计模式-创建型-静态工厂
- 设计模式2——创建型模式之工厂方法模式
- 设计模式笔记(5)---工厂方法模式(创建型)
- Php设计模式之工厂模式(二)【工厂方法模式 Factory Method】
- JAVA设计模式(01):创建型-工厂模式【工厂方法模式】(Factory Method)
- 四.创建型设计模式——Factory Method Pattern(工厂方法模式)
- 设计模型之创建型模式之工厂方法模式(Factory Method)
- php设计模式(一):简介及创建型模式——优才网公开课
- 设计模式笔记(5)---工厂方法模式(创建型)
- 设计模式2:工厂方法模式【创建型】
- 23种设计模式(2)_创建型_工厂方法模式(Factory Method Pattern)
- Java经典设计模式-创建型模式-工厂方法模式(Factory Method)
- 设计模式笔记 4.Factory Method 工厂方法模式(创建型模式)
- PHP设计模式(三),工厂方法模式
- 设计模式学习(创建型模式)—工厂方法模式(Factory Method)
- 23种设计模式二:创建型工厂方法模式
- 23种设计模式----创建型模式(工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式)
- 设计模式之创建型模式―― 1.2 工厂方法模式