酆叔のBlog

  • 首页
  • 分享技术
  • 八卦黑料
  • 生活日常
  • 日记
酆叔のBlog
上辈子作恶多端,这辈子早起上班。
  1. 首页
  2. IT技术
  3. 正文

策略模式

2024年2月22日 864点热度 0人点赞 0条评论

定义:定义一系列算法,将每一个算法封装起来,并让它们可以相互替换。策略模式让算法独立于使用它的客户而变化。

特点:策略模式提供了管理相关的算法族的办法; 策略模式提供了可以替换继承关系的办法;使用策略模式可以避免使用多重条件转移语句。

应用场景:多个类只区别在表现行为不同,可以使用Strategy模式,在运行时动态选择具体要执行的行为。如上传文件可以上传到腾讯云,或者阿里云,或者七牛云等。

#通过需要不同的日期信息来调用不同的类实现功能。
 #策略模式:
        #定义一个接口  日期转换
        interface Time
        {
            public function timeString();
        }

        # 当前的年份
        class Year implements Time{
            public function timeString(){
                   echo date('Y',time()).'年';
            }
        }
        # 当前的月份
        class Month implements Time{
            public function timeString(){
                echo date('m',time()).'月';
            }
        }
        # 当前的日期
        class Day implements Time{
            public function timeString(){
                echo date('Y-m-d',time());
            }
        }

        class Times {
            private $class;
            #根据所需的日期 来选择调用哪个类的方法
            public function timess(Time $class){
                 $this->class = $class;
                 return $this->class->timeString();
            }
        }

        $Year = new Times();
        #查看当前的年份
        $Year->timess(new Year());#2022年
        #查看当前的月份
        $Year->timess(new Month());#07月
        #查看当前的日期
        $Year->timess(new Day());#2022-07-20
标签: PHP 设计模式
最后更新:2024年2月20日

酆叔

上辈子作恶多端,这辈子早起上班。

点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

最新 热点 随机
最新 热点 随机
2025/05/15 周四 晴 2025/05/12 周一 晴 2025/05/08 周四 多云 2025/05/07 周三 阵雨 2025/05/06 周二 阵雨 2025/04/30 周三 多云
PHP8特性 认识PHP(九)面对对象的五大基本基本原则 单例模式 认识PHP(六)数据类型 注册树模式 2025/04/28 周一 阵雨
腾讯云
又拍云
订阅
订阅

COPYRIGHT © 2024 酆叔のBlog. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

豫ICP备2023016219号