策略模式
博客专区 > udbwcso 的博客 > 博客详情
策略模式
udbwcso 发表于2年前
策略模式
  • 发表于 2年前
  • 阅读 60
  • 收藏 1
  • 点赞 1
  • 评论 0

【腾讯云】新注册用户域名抢购1元起>>>   

摘要: 策略模式

策略模式

定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户.

Context: 环境类。维护一个Strategy对象的引用,用一个ConcreteStrategy来配置。 

Strategy: 抽象策略类。定义所有支持算法的公共接口。Context使用这个接口来调用某个Concretestrategy定义的算法。 

ConcreteStrategy: 具体策略类。封装了具体的算法实现。

public abstract class Strategy {
    abstract void algorithm();
}
public class ConcreteStrategyA extends Strategy{
    public void algorithm() {
    }
}
public class ConcreteStrategyB extends Strategy{
    public void algorithm() {
    }
}
public class Context {
    private Strategy strategy;

    public Context(Strategy strategy){
        this.strategy = strategy;
    }

    public void algorithm(){
        strategy.algorithm();
    }

    public Strategy getStrategy() {
        return strategy;
    }

    public void setStrategy(Strategy strategy) {
        this.strategy = strategy;
    }
}

  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 75
博文 34
码字总数 15706
×
udbwcso
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: