美文网首页
状态模式

状态模式

作者: 零一间 | 来源:发表于2017-08-09 08:52 被阅读21次
    <?php
    /*
     状态模式:
    允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了它的类。其别名为状态对象(Objects for States),状态模式是一种对象行为型模式。
    模式分析:
    在很多情况下,一个对象的行为取决于一个或多个动态变化的属性,这样的属性叫做状态,这样的对象叫做有状态的(stateful)对象,这样的对象状态是从事先定义好的一系列值中取出的。当一个这样的对象与外部事件产生互动时,其内部状态就会改变,从而使得系统的行为也随之发生变化。
     */
    header ( "Content-Type:text/html;charset=utf-8" );
    abstract class State{
        abstract function recommend();
    }
    //低等收入
    class  LowerIncome extends State{
        function recommend(){
            echo '低等收入: 要努力工作,解决温饱问题!<br>';
        }
    }
    //中等收入
    class  MediumIncome extends State{
        function recommend(){
            echo '中等收入: 你可以丰富一些业余生活,KTV,健身,下馆子!<br>';
        }
    }
    //高等收入
    class  HigherIncome extends State{
        function recommend(){
            echo '高等收入:买房,买车,理财投资,想干啥干啥,谁让你牛逼呢!<br>';
        }
    }
    class Analysis{
        public static function getResult($status){
            switch($status){
                case 'L':
                    return new LowerIncome();
                case 'M':
                    return new MediumIncome();
                case 'H':
                    return new HigherIncome();
            }
        }
    }
    Analysis::getResult('L')->recommend();
    Analysis::getResult('M')->recommend();
    Analysis::getResult('H')->recommend();
    

    相关文章

      网友评论

          本文标题:状态模式

          本文链接:https://www.haomeiwen.com/subject/pjlfrxtx.html