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

    抽象工厂模式

    <?php
    interface PayInterface
    {
       public function pay();
    }
    
    class AliPay implements PayInterface
    {
       public function pay()
       {
           return "支付宝支付";
       }
    }
    
    class TenPay implements PayInterface
    {
       public function pay()
       {
           return "微信支付";
       }
    }
    
    interface LogInterface
    {
       public function log();
    }
    
    class MysqlLog implements LogInterface
    {
       public function log()
       {
           return "记录mysql日志";
       }
    }
    
    class RedisLog implements LogInterface
    {
       public function log()
       {
           return "记录Redis日志";
       }
    }
    
    interface PayFactoryInterface
    {
       public function AliPayMake();
    
       public function TenPayMake();
    }
    
    interface LogFactoryInterface
    {
       public function MysqlLogMake();
    
       public function RedisLogMake();
    }
    
    class PayFactory implements PayFactoryInterface
    {
       public function AliPayMake()
       {
           return new AliPay();
       }
    
       public function TenPayMake()
       {
           return new TenPay();
       }
    }
    
    class LogFactory implements LogFactoryInterface
    {
       public function MysqlLogMake()
       {
           return new MysqlLog();
       }
    
       public function RedisLogMake()
       {
           return new RedisLog();
       }
    }
    
    class Order
    {
       protected $log;
    
       protected $pay;
    
       public function __construct()
       {
           $LogFactory = new LogFactory();
           $PayFactory = new PayFactory();
           $this->log = array(
               'mysql' => $LogFactory->MysqlLogMake(),
               'redis' => $LogFactory->RedisLogMake()
           );
           $this->pay = array(
               'Ali' => $PayFactory->AliPayMake(),
               'Ten' => $PayFactory->TenPayMake()
           );
       }
    
       public function getLog()
       {
           return $this->log;
       }
    
       public function getPay()
       {
           return $this->pay;
       }
    }
    
    $order = new Order();
    var_dump($order->getLog());
    var_dump($order->getPay());
    exit;
     
  • 相关阅读:
    ORMs Under the Hood
    django-spaghetti-and-meatballs 0.2.0 : Python Package Index
    Django
    What is entity relationship diagram?
    Sov5搜索
    Django中国社区
    Django中的Model(字段)
    Django中的Model(操作表)
    Fbric、Ansible、Docker、Chaos Monkey:DevOps工具的年中回顾
    基于ansible role实现LAMP平台批量部署
  • 原文地址:https://www.cnblogs.com/clubs/p/15169258.html
Copyright © 2011-2022 走看看