zoukankan      html  css  js  c++  java
  • php策略模式的研究

    <?php

    abstract class Moshi{

        private $num;
        public $price;
        const Ted=1;
        const Sed=2;

        public function __construct($num,$price)
        {
            $this->num = $num;
            $this->price = $price;
        }

        public function cost(){
            if($this->price == self::Ted) return 30;
            elseif($this->price == self::Sed) return 5*$this->num;
            else { $this->price == self::Ted; return 35;}
        }

        public function ccc(){
            if($this->price == self::Ted) return 'a';
            elseif($this->price == self::Sed) return 'b';
            else$this->price == self::Ted; return 35;}
        }

    }

    class Aa extends Moshi{}
    class Bb extends Moshi{}
    var_dump(Moshi::Ted);//类中常量的调用
    $a=new Aa(5,Moshi::Ted);
    print "{$a->cost()}--{$a->ccc()} ";
    $b=new Aa(3,Moshi::Sed);
    print "{$b->cost()}--{$b->ccc()} ";

    $c=new Aa(5,4);
    print "{$c->cost()}--{$c->ccc()}--{$c->price} ";
    <?php

    abstract class Moshi2{

        private $num;
        private $price;

        public function __construct($num,Sget $sget)
        {
            $this->num = $num;
            $this->price = $sget;
        }

        public function cost(){
            return $this->price->cost($this);

        }

        public function ccc(){
            return $this->price->charge();
        }

        public function gets(){
            return $this->num;
        }
    }

    class Aa extends Moshi2{}
    class Bb extends Moshi2{}

    abstract class Sget{
        abstract function cost(Moshi2 $moshi2);
        abstract function charge();
    }

    class Ee extends Sget{
        function cost(Moshi2 $moshi2){
            return $moshi2->gets() * 5;
        }
        function charge(){
            return 'a';
        }
    }

    class Ff extends Sget{
        function cost(Moshi2 $moshi2){
            return 30;
        }
        function charge(){
            return 'b';
        }
    }


    $bb    = new Aa(4,new Ee());
    print "{$bb->cost()} ";

    $les[] = new Aa(4,new Ee());
    $les[] = new Bb(4,new Ff());
    var_dump($les);
    foreach($les as $val){
        print "{$val->cost()}--";
        print "{$val->ccc()} ";

    }
  • 相关阅读:
    bzoj2588 Count on a tree
    poco对象生成的几种方式根据你使用不同的ui决定
    airtest本地连接和远程连接
    python音频文件中pcm格式提取
    python提取视频中的音频
    如何理解快速排序的时间复杂度是O(nlogn)
    剑指 Offer 45. 把数组排成最小的数
    剑指 Offer 44. 数字序列中某一位的数字
    剑指 Offer 43. 1~n 整数中 1 出现的次数
    剑指 Offer 41. 数据流中的中位数
  • 原文地址:https://www.cnblogs.com/jami918/p/3597144.html
Copyright © 2011-2022 走看看