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

来源:互联网 发布:java 追加文件内容 编辑:程序博客网 时间:2024/05/17 08:43

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

接口

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

/** * 声明一个接口 * @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();    }}

输出:

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