zoukankan      html  css  js  c++  java
  • php实现设计模式之 抽象工厂模式

    <?php
    /*抽象工厂模式:提供一个创建一系统相关或相互依赖对象的接口,而无需指定它们具体的类
     * 创建型模式
     */
    
    //抽象小米工厂,能制造小米一,小米二
    abstract class mifactory{
    	abstract public function createmione();
    	abstract public function createmitwo();
    }
    //具体工厂:生产白色的小米
    class white extends mifactory{
    	public function createmione(){
    		return new whiteone();
    	}
    	public function createmitwo(){
    		return new whitetwo();
    	}
    }
    //具体工厂:生产黑色的小米
    class black extends mifactory{
    	public function createmione(){
    		return new blackone();
    	}
    	public function createmitwo(){
    		return new blacktwo();
    	}
    }
    //产品接口
    interface product{
    	public function colorvoice();
    }
    
    //白色小米一
    class whiteone implements product{
    	public function colorvoice(){
    		echo 'white one';
    	}
    }
    //白色小米二
    class whitetwo implements product{
    	public function colorvoice(){
    		echo 'white two';
    	}
    }
    //黑色小米一
    class blackone implements product{
    	public function colorvoice(){
    		echo 'black one';
    	}
    }
    //黑色小米二
    class blacktwo implements product{
    	public function colorvoice(){
    		echo 'black two';
    	}
    }
    //现在可以随意创建产品了
    $m = new black();
    $n = $m->createmitwo();
    $n->colorvoice();
    ?>
    

      

  • 相关阅读:
    运算符重载
    poj2329dfs
    poj2349最小生成树prim
    poj1258最小生成树prim
    read 一个防止找不到就写一下的输入模板
    CentOS7下安装ngnix
    CentOS7下安装mysql
    CentOS7下安装rabbitmq
    在window 2008r2开发服务器上安装MSMQ消息队列
    spark快速大数据分析学习笔记(1)
  • 原文地址:https://www.cnblogs.com/taijun/p/4063168.html
Copyright © 2011-2022 走看看