zoukankan      html  css  js  c++  java
  • 面向对象---工厂模式

    //设计模式:工厂模式
    /*class suanshu
    {
        public $a;
        public $b;
        
        function jia()
        {
            return $this->a+$this->b; 
        }
        function jian()
        {    
            return $this->a-$this->b;
        }
        function cheng()
        {
            return $this->a*$this->b;
        }
        function chu()
        {
            return $This->a/$this->b;    
        }
        function quyu()
        {
            return $this->a%$this->b;
        }
    }
    $r=new suanshu();
    $r->a="5";
    $r->b=9;
    echo $r->quyu();*/
    //大类分子类
    class suanshu    
    {
        public $a;
        public $b;
        
        function yunsuan(){}
    }
    class jia extends suanshu
    {
        function yunsuan()
        {
            return $this->a+$this->b;
            }
        }
    class jian extends suanshu
    {
        function yunsuan()
        {
              return $this->a-$this->b;
            }
        }
    class cheng extends suanshu
    {
        function yunsuan()
        {
            return $this->a*$this->b;
            }
        }
    $r=new jia();
    $r->a=1;
    $r->b=1;
    echo $r->yunsuan()."<br />";
    $r=new jian();
    $r->a=1;
    $r->b=1;
    echo $r->yunsuan();
    
    //工厂类 对创建的对象进行优化,不用记住对象名,只需要记住符号或是代号就好。
    class gongchang
    {
        static function duixiang($a)
        {
            switch($a)
            {    
                case "+":
                    return new jia(); 
                    break;
                case "-":
                    return new jian();
                    break;
                case "*":
                    return new cheng();
                    break;
                case "/":
                    return new chu();
                    break;
            }
        }
    }
    $r=gongchang::duixiang("-");//重点是这句话
    $r->a=10;
    $r->b=5;
    echo $r->yunsuan();
  • 相关阅读:
    tablespaces
    转 房价
    Duplicate a whole line in Vim
    Dubbo+JStorm
    replace all
    ORACLE 最后表数据更新的时间
    list reverse
    python IDE
    string 方法
    java JIT AOT
  • 原文地址:https://www.cnblogs.com/jinshui/p/5570387.html
Copyright © 2011-2022 走看看