PHP设计模式之-----高级工厂模式
2017-09-22 11:29
495 查看
<?php /* * PHP设计模式 工厂模式 (创建型) * 一个工厂制造多种商品 * */ /** * Interface Product 定义一个获取制造出来的产品的接口 */ interface Product { public function getProperties(); } /** * Class Creator * * @describe 定义一个创造产品的抽象类 * * @author nick * */ abstract class Creator { // 接受所有实现Product接口的类 protected abstract function factoryMethod( Product $product ); public function doFactory( $productNow ) { $countryProduct = $productNow; // 不同产品类的实例 $mfg = $this->factoryMethod($countryProduct); return $mfg; } } /** * Class countryFactory * * @describe 具体的创建产品的工厂类 * * @author nick * */ class CountryFactory extends Creator { private $country; // 需要传入要制造的产品的实例 protected function factoryMethod( Product $product ) { $this->country = $product; // 返回制造出来是具体产品 return $this->country->getProperties(); } } /** * Class SomeProduct * * @describe SomeProduct产品类 * * @author nick * */ class SomeProduct implements Product { // 实现一些制造产品的逻辑 private $mfgProduct; public function getProperties() { $this->mfgProduct = '我是SomeProduct产品' . '<br>'; return $this->mfgProduct; } } /** * Class TextProduct * * @describe TextProduct产品类 * * @author nick * */ class TextProduct implements Product { // 实现一些制造产品的逻辑 private $mfgProduct; public function getProperties() { $this->mfgProduct = '我是TextProduct产品' . '<br>'; return $this->mfgProduct; } } /** * Class Client * * @describe 最后用户要那个产品就给那个产品 * * @author nick * */ class Client { private $countryFactory; public function __construct() { $this->countryFactory = new CountryFactory(); echo $this->countryFactory->doFactory(new TextProduct()); } } $a = new Client();
相关文章推荐
- 深入理解PHP:高级技巧、面向对象与核心技术(原书第3版) -- 设计模式之工厂模式
- PHP设计模式-工厂模式
- PHP设计模式系列 - 工厂模式
- PHP设计——单例模式与工厂模式
- PHP最常用的2种设计模式工厂模式和单例模式
- php设计模式之工厂模式
- php设计模式之工厂模式
- PHP设计模式-工厂系列(二)-工厂方法模式
- PHP设计模式-工厂模式
- php模式设计之 工厂模式
- PHP设计模式――简单工厂模式
- PHP设计模式之简单工厂模式
- PHP之设计模式(工厂、单例)
- PHP设计模式:创建型之工厂模式(Factory Method)
- php 设计模式之 工厂模式实例教程
- PHP设计模式之工厂
- PHP设计模式---工厂模式
- PHP:设计模式之工厂模式
- 【PHP设计模式】工厂模式
- php模式设计之 工厂模式