zoukankan      html  css  js  c++  java
  • 策略模式

    为什么有?
       有些时候,我们在不同的情况下我们对一件事会有不同的策略,比如说京东,我们都是知道京东在双十一或者在618都会做不同的活动。这时候我们就会用到我们的策略模式。
        这里我们通过CD机和CD来举例子,大家都知道CD机是可以通过更换CD来播放不同的歌曲的,这就相当于不同的播放策略,但也有一部分CD机是通过内置的很多歌曲来解决这个问题的,比如说有些小孩子的故事机。显而易见的是,无论你内置再多的歌曲,也不可能把所有的歌曲全部罗列出来,这样的程序就不够灵活。下面我们来将这两种CD机进行对比,体会策略模式的优势。
    1. /*
    2. * 这里是老式CD机
    3. */
    4. public class OldCDplayer {
    5. public void playMusic(String singer){
    6. if(singer == "jay"){
    7. System.out.println("我是周杰伦我在演唱");
    8. System.out.println("青花瓷");
    9. System.out.println("双截棍");
    10. System.out.println("七里香");
    11. System.out.println("发如雪");
    12. }else if(singer == "li"){
    13. System.out.println("我是李荣浩我在演唱");
    14. System.out.println("模特");
    15. System.out.println("李白");
    16. System.out.println("爸爸妈妈");
    17. }else{
    18. System.out.println("没有该歌手");
    19. }
    20. }
    21. }
    1. public class NewCDplayer {
    2. private CD cd;
    3. public void setCd(CD cd) {
    4. this.cd = cd;
    5. }
    6. public void playMusic(){
    7. cd.sing();
    8. }
    9. }
    在新CD机中我们可以通过为CD机设置不同的CD来播放不同的歌曲,这就是策略模式,将策略声明在外部,并持有策略的接口对象,在不同的请情况下为其灵活的设置不同的策略;







  • 相关阅读:
    【C语言天天练(二二)】位操作
    远程调用内核接口的封装类(RCKObjs)
    03010_防止SQL注入
    PHP 5 SimpleXML 函数
    PHP 5 String 函数
    PHP 5 MySQLi 函数
    PHP 杂项 函数
    PHP PDO
    PHP 5 时区
    分享海量 iOS 及 Mac 开源项目和学习资料
  • 原文地址:https://www.cnblogs.com/Jxiaobai/p/6617495.html
Copyright © 2011-2022 走看看