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();
    ?>
    

      

  • 相关阅读:
    属性绑定与双向数据绑定
    vue基础
    tp5提交留言入库
    tp5表单提交
    TP5分页
    TP5模板与数据组合
    vue3.x使用Proxy做双向数据绑定总结
    vue2.x响应式原理总结
    HTML5移动端自适应解决方案
    springMVC实现文件上传
  • 原文地址:https://www.cnblogs.com/taijun/p/4063168.html
Copyright © 2011-2022 走看看