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;
  • 相关阅读:
    Django发送邮件功能
    Django视图中使用本地缓存
    Django中利用type动态操作数据库表
    Django扩展内置User类
    Django开发环境配置(win10)
    MySql隔离级别
    染色法判定二分图
    关押囚犯
    迷一样的牛poj2182
    poj3468 A Simple Problem with Integers
  • 原文地址:https://www.cnblogs.com/yhdsir/p/4649233.html
Copyright © 2011-2022 走看看