设计模式——策略模式

来源:互联网 发布:java字符串转数组对象 编辑:程序博客网 时间:2024/06/01 12:58

策略模式

  策略模式估计是23中设计模式中结构最简单的一种设计模式。它存于我们日常编程中的各个角落。
  策略模式的简单解释就是在各个具体的策略实现类中封装不同的策略算法。当策略执行类需要用到某个策略时,将该策略实现类传递给策略执行类即可。
  通过一个简单的生活场景来说明:
  一个CD播放器可以播放CD唱片里所记录的歌曲信息。CD播放器相当于策略执行类,CD唱片相当于具体的策略类。我们不可能将所有的歌曲信息都记录在CD播放器中,第一这不现实,第二当有新的歌曲时我们还要不断往CD播放机中记录新的歌曲。正确的做法是我们将歌曲记录到一片片唱片中,当需要听某些歌曲的时候,将记录有这些歌曲的CD放入到CD播放器中即可。
  具体的代码如下:
  

public interface CD {    public void sing();}public class JayCD implements CD {    @Override    public void sing() {        System.out.println("青花瓷");        System.out.println("告白气球");        System.out.println("七里香");    }}public class CDPlayer {    private CD cd;    public CD getCd() {        return cd;    }    public void setCd(CD cd) {        this.cd = cd;    }    public void play() {        cd.sing();    }}public class Test {    public static void main(String[] args) {        CDPlayer player = new CDPlayer();        player.setCd(new JayCD());        player.play();    }}

  当我们在日常工作时碰到需要提供一个公共的框架或者方法来为不同的实体类提供查询服务时。我们应该想到策略模式。将具体的sql语句的实现封装到不同实体类的策略类中去实现,然后统一将这个策略类传递给框架,让框架去执行最后的查询操作。而不是将所有的查询语句都在框架中去生成。

原创粉丝点击