前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >java设计模式---策略模式

java设计模式---策略模式

作者头像
爱拼才会赢
发布2021-10-18 10:21:20
6380
发布2021-10-18 10:21:20
举报
策略模式(Strategy Pattern)
代码语言:javascript
复制
现在来地说说如何来实现策略模式(锦囊妙计):
1、策略[妙计]实现接口(IStrategy);
2、对应的策略实现类(*Strategy);
3、封装策略的锦囊(StrategyContext);
4、策略执行者(StrategyExecute)。

IStrategy.java

代码语言:javascript
复制
/*
*策略实现的接口
*/
public interface IStrategy{
//策略执行方法
    public void  operate();
}

FirstStrategy.java [策略1]

代码语言:javascript
复制
public class FirstStrategy impelements IStrategy{
  public void operate(){
        system.out.printf("this is the first strategy");
    }
}

SecondStrategy.java[策略2]

代码语言:javascript
复制
public class SecondStrategyimpelements IStrategy{
  public void operate(){
        system.out.printf("this is the second strategy");
    }
}

ThirdStrategy.java[策略3]

代码语言:javascript
复制
public class SecondStrategyimpelements IStrategy{
  public void operate(){
        system.out.printf("this is the third strategy");
    }
}

… 策略已经有了,那么现在就需要一个盒子(锦囊)来把这个策略(妙计)给装起来以方便使用,以下就定义这么一个盒子: -StrategyContext.java[锦囊]

代码语言:javascript
复制
public class StrategyContext{
private IStrategy iStrategy;
public StrategyContext(IStrategy iStrategy){
this.iStrategy=iStrategy
}
public void doOperate(){
this.iStrategy.operate();
}
}

锦囊已经有了,现在就是缺少使用的人了(也就是执行者)

StrategyExecute.java(执行者)

代码语言:javascript
复制
/**
*执行者
*/
public class StrategyExecute{
    public static void main(String[] args){
        StrategyContext context1=new StrategyContext(new FirstStrategy());
        context1.doOperate();//output: this is the first strategy
                StrategyContext context2=new StrategyContext(new SecondStrategy());
        context1.doOperate();//output: this is the second strategy
                StrategyContext context3=new StrategyContext(new ThirdStrategy());
        context1.doOperate();//output: this is the third strategy

    }
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016-11-23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 策略模式(Strategy Pattern)
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档