如何通过策略模式简化 if-else?

本文介绍了策略模式,一种用于封装算法族并允许它们互换的设计模式。通过策略模式,可以避免使用复杂的if-else语句,提高代码的可读性和可扩展性。文章通过一个处理不同类型的Office文件的例子,展示了如何使用策略模式重构代码,使得添加新的文件类型处理更加便捷,并列举了策略模式的优点和适用场景。
摘要由CSDN通过智能技术生成

1.什么是策略模式?

Define a family of algorithms, encapsulate each one, and make them interchangeable. Strategy lets the algorithm vary independently from clients that use it.

策略模式(Strategy Pattern):定义一族算法类,将每个算法分别封装起来,让它们可以互相替换。

2.策略模式定义

①Context封装角色

它也叫做上下文角色, 起承上启下封装作用, 屏蔽高层模块对策略、 算法的直接访问,封装可能存在的变化。

②Strategy 抽象策略角色

策略、 算法家族的抽象, 通常为接口, 定义每个策略或算法必须具有的方法和属性。

③ConcreteStrategy 具体策略角色

实现抽象策略中的操作, 该类含有具体的算法。

3.策略模式通用代码

public class Context {
    // 抽象策略
    private Strategy strategy = null;
    // 构造函数设置具体策略
    public Context(Strategy strategy) {
        this.strategy = strategy;
    }
    // 封装后的策略方法
    public void doAnything(){
        this.strategy.doSomething();
    }
}
public
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值