zoukankan      html  css  js  c++  java
  • CenterFactory

    <?php
    /* 实例3 */
    /* 抽象工厂 */
    //青铜会员的打折商品
    class BronzeRebateCommodity {
        //描述
        public $desc = '青铜会员的打折商品';
    }
    //白银会员的打折商品
    class SilverRebateCommodity {
        
        public $desc = '白银会员的打折商品';
    }
    //青铜会员的推荐商品
    class BronzeCommendatoryCommodity {
        public $desc = '青铜会员的推荐商品';
    }
    //白银会员的推荐商品
    class SilverCommendatoryCommodity {
        public $desc = '白银会员的推荐商品';
        
    }
    //各个工厂的接口
    interface ConcreteFactory {
        //生产对象的方法
        public function create($what);
    }
    //青铜工厂
    class BronzeFactory implements ConcreteFactory {
        //生产对象的方法
        public function create($what){
            $productName = 'Bronze'.$what.'Commodity';
            return new $productName;
        }
    }
    //白银工厂
    class SilverFactory implements ConcreteFactory {
        //生产对象的方法
        public function create($what){
            $productName = 'Silver'.$what.'Commodity';
            return new $productName;
        }
    }
    //调度中心
    class CenterFactory {
        //获取工厂的方法
        public function getFactory($what) {
            $factoryName = $what.'Factory';
            return new $factoryName;
        }
        
        //获取工厂的静态方法
        public static function getFactory2($what) {
            $factoryName = $what.'Factory';
            return new $factoryName;
        }
    }
     
    //实例化调度中心
    $center  = new CenterFactory();
    //获得一个白银工厂
    $factory = $center->getFactory('Silver');
    //让白银工厂制造一个推荐商品
    $product = $factory->create('Commendatory');
    //得到白银会员的推荐商品
    echo $product->desc.'<br>';
    //获得一个青铜工厂
    $factory2 = CenterFactory::getFactory2('Bronze');
    //让青铜工厂制造一个打折商品
    $product2 = $factory2->create('Rebate');
    //得到青铜会员的推荐商品
    echo $product2->desc;
  • 相关阅读:
    【转】ThinkPHP 页面跳转
    thinkphp中select()和find()的区别
    (Python)异常处理try...except、raise
    python中try except处理程序异常的方法
    SNMP消息传输机制
    公钥私钥+数字证书原理
    转:使用python的Flask实现一个RESTful API服务器端
    转:xxe attack学习
    转:php防止sql注入的一点心得
    转:在 Ubuntu 上使用 Nginx 部署 Flask 应用
  • 原文地址:https://www.cnblogs.com/yhdsir/p/4649233.html
Copyright © 2011-2022 走看看