zoukankan      html  css  js  c++  java
  • PHP抽象工场模式

    /**
     * Interface AbstractFactory 抽象工场模式
     */
    //抽象工场
    interface AbstractFactory{
        //创建等级结构工场方法
        public function createProductA();
        public function createProductB();
    }
    
    //具体工场1
    class ConcreteFactory1 implements AbstractFactory {
        public function createProductA()
        {
            // TODO: Implement createProductA() method.
            return new ProductA1();
        }
        public function createProductB()
        {
            // TODO: Implement createProductB() method.
            return new ProductB1();
        }
    }
    
    //具体工场2
    
    class ConcreteFactory2 implements AbstractFactory {
        public function createProductA()
        {
            // TODO: Implement createProductA() method.
            return new ProductA2();
        }
        public function createProductB()
        {
            // TODO: Implement createProductB() method.
            return new ProductB2();
        }
    }
    
    //抽象产品A
    interface AbstractProductA{
        public function price();
    }
    //抽象产品B
    interface AbstractProductB{
        public function price();
    }
    
    
    //具体产品A1
    class ProductA1 implements AbstractProductA{
        public function price()
        {
            // TODO: Implement price() method.
            echo 'ProductA1 价格';
        }
    }
    
    //具体产品A2
    class ProductA2 implements AbstractProductA{
        public function price()
        {
            // TODO: Implement price() method.
            echo 'ProductA2 价格';
        }
    }
    
    //具体产品B1
    class ProductB1 implements AbstractProductB{
        public function price()
        {
            // TODO: Implement price() method.
            echo 'ProductB1 价格';
        }
    }
    
    //具体产品B1
    class ProductB2 implements AbstractProductB{
        public function price()
        {
            // TODO: Implement price() method.
            echo 'ProductB2 价格';
        }
    }
    
    class Client {
        public static function main() {
            self::run(new ConcreteFactory1());
            self::run(new ConcreteFactory2());
        }
    
        public static function run(AbstractFactory $factory) {
            $productA = $factory->createProductA();
            $productB = $factory->createProductB();
            echo $productA->price(),PHP_EOL;
            echo $productB->price(),PHP_EOL;
        }
    }
    
    Client::main();
    
  • 相关阅读:
    股票交易接口
    股票自动买卖
    安信证券接口的demo做得不好。
    MEF bug? 无法加载外部的DLL
    如何移植行情软件的指标到千发股票自动交易软件?
    股票策略交易
    博客园自动关注病毒 只活了一小会儿。
    Float 运算的怪异性
    文件大小和占用空间为何不一样
    做最好的自己
  • 原文地址:https://www.cnblogs.com/whel0923/p/15030617.html
Copyright © 2011-2022 走看看