码迷,mamicode.com
首页 > 其他好文 > 详细

【设计模式】策略设计模式

时间:2015-05-14 22:13:16      阅读:147      评论:0      收藏:0      [点我收藏+]

标签:策略模式   设计模式   

假设今天老婆让我去丈母娘家做客,可是我答应了我的情人晚上要回去陪她,这可怎么办?,,正在我纠结的时候,好哥们给我一个三个理由包,让我不要看,到时候看情况拆开

接口

三个妙计是同一个类型,继承同一个接口

/**
 * 声明一个接口
 * @author TTF
 *
 */
public interface JieKou {
    public void reson();
}

三个理由类

喝酒时候的理由

public class HeJiu implements JieKou {

    @Override
    public void reson() {
        System.out.println("我还要开车呢。。。");
    }

}

打麻将时候的理由

public class MaJiang implements JieKou {

    @Override
    public void reson() {
        System.out.println("我不会玩牌。。。");
    }

}

离开的理由

public class LiKai implements JieKou {

    @Override
    public void reson() {
        System.out.println("公司还有事,就先走了。。。");
    }

}

盛放理由的理由包

public class Context {
    private JieKou jieKou;

    public Context(JieKou jieKou) {
        this.jieKou = jieKou;
    }

    public void liYou() {
        this.jieKou.reson();
    }
}

去丈母娘家

public class JianZhangMuNiang {

    public static void main(String[] args) {
        Context context;
        System.out.println("见了丈母娘吃饭的时候,丈母娘敬酒了....");
        context = new Context(new HeJiu());//拿出有喝酒标签的理由
        context.liYou();

        System.out.println("吃过饭了,丈母娘要打麻将....");
        context = new Context(new MaJiang());//拿出有打麻将标签理由
        context.liYou();

        System.out.println("麻将不打,气氛不好了,那就找机会离开吧....");
        context = new Context(new LiKai());//要走了,拿出走标签的理由
        context.liYou();
    }
}

输出:

见了丈母娘吃饭的时候,丈母娘敬酒了....
我还要开车呢。。。
吃过饭了,丈母娘要打麻将....
我不会玩牌。。。
麻将不打,气氛不好了,那就找机会离开吧....
公司还有事,就先走了。。。

【设计模式】策略设计模式

标签:策略模式   设计模式   

原文地址:http://blog.csdn.net/ttf1993/article/details/45723955

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!