PHP 简单工厂模式(静态工厂模式)

  1. 简单工厂模式(静态工厂模式)
    <?php
    /**
     *  简单工厂模式(静态工厂模式)
     */
    
    /**
     * Interface DemandIO
     * 定义接口
     */
    interface DemandIO {
        public function Price ();
    }
    
    class GoodsMacBook implements DemandIO{
        public function Price () {
            echo 'price=8888rmb'.PHP_EOL;
        }
    }
    
    class GoodsXps implements DemandIO {
        public function Price () {
            echo 'price=6999rmb'.PHP_EOL;
        }
    }
    
    class Service {
        public static function GetGoods($name='') {
            if ($name === 'xps') {return new GoodsXps();}
            if ($name === 'macbook') {return new GoodsMacBook();}
            throw new Exception("not object ".PHP_EOL);
        }
    }
    try{
        $obj =  Service::GetGoods();
    } catch  (Exception $e){
        echo $e->getMessage(); // not object
    }
    
    try{
        $obj =  Service::GetGoods('xps');
        $obj->Price(); // price=6999rmb
    } catch  (Exception $e){
        echo $e->getMessage();
    }
    
    try{
        $obj =  Service::GetGoods('macbook');
        $obj->Price(); // price=8888rmb
    } catch  (Exception $e){
        echo $e->getMessage();
    }

猜你喜欢

转载自my.oschina.net/u/3529405/blog/1823278
今日推荐