美文网首页
必知必会的设计模式7

必知必会的设计模式7

作者: jkwen | 来源:发表于2021-03-13 16:58 被阅读0次

策略模式(Strategy Pattern)

属行为类设计模式,「定义一组算法,将每个算法封装起来,并且使它们之间可以互换」

怎么来理解呢?其实就是做某件事有很多种方法,但不管什么方法,本质都是完成某件事。那么具体的方法就叫做策略。那何来的封住呢?这里需要借助一个上下文的概念,持有策略对象,所以对外部使用来说就封装了。

策略模式其实运用了面向对象的封装和多态。上下文类起到了封装作用,而策略类表现着多态的特性。

策略模式.jpeg
优缺点
  • 可以根据实际情况灵活切换策略
  • 避免使用多重条件判断
    这点也是实际项目中最实用的,假如条件语句碰上复杂逻辑,那么代码就会变得臃肿,不但不方便阅读维护,扩展起来也是头疼不已。用上策略模式,不仅扩展性增强不少,而且阅读起来一点也不费劲,一口气读完。
  • 缺点是类代码增多了,并且策略不宜太多,多了反而也变得不合适了。

适用场景

  • 前面说了,最适合用的就是复杂逻辑加上多条件语句。
  • 一个系统对应多个用户角色,不同角色可以对应一个策略。
  • 系统需要根据实际情况动态切换方案的情况。

在 Android 中的使用

我所知道的明显使用策略模式的好像找不出来(也可能是我了解的太肤浅了),书中提到了一点就是 Android 动画的插值器,根据具体的情况可以选用不同的插值器。

参考内容

「设计模式之禅(第 2 版)」
「Android 源码设计模式解析与实战」

相关文章

  • 必知必会的设计模式7

    策略模式(Strategy Pattern) 属行为类设计模式,「定义一组算法,将每个算法封装起来,并且使它们之间...

  • Java面试经典题目六(网络知识及设计模式)

    设计模式(必知必会) 【1】你知道那些设计模式? 答:单例模式、观察者模式、MVC模式、工厂模式、桥接模式、代理模...

  • 代理模式续集

    动态代理 讲代理模式不讲动态代理简直是耍流氓。相比 必知必会的设计模式8[https://www.jianshu....

  • 必知必会的设计模式8

    代理模式(Proxy Pattern) 属结构型设计模式,「为其他对象提供一种代理以控制对这个对象的访问」。 代理...

  • 必知必会的设计模式9

    外观模式(Facade Pattern) 属结构型设计模式,「要求一个子系统的外部与其内部的通信必须通过一个统一的...

  • 必知必会的设计模式10

    责任链模式 属行为型设计模式,「使多个对象(处理者)都有机会处理请求,从而避免请求发起者和处理者之间的耦合关系。将...

  • 必知必会的设计模式1

    装饰模式(Decorator Pattern) 属结构型设计模式,也称包装模式,「动态地给一个对象添加一些额外的职...

  • 必知必会的设计模式2

    桥接模式(Bridge Pattern) 属结构型设计模式,也称桥梁模式,「将抽象和实现解耦,使得两者可以独立地变...

  • 必知必会的设计模式5

    观察者模式(Observer Pattern) 属行为类设计模式,「定义对象间一种一对多的依赖关系,使得每当一个对...

  • 必知必会的设计模式6

    单例模式(Singleton Pattern) 属创建类设计模式,「确保某个类只有一个实例,而且自行实例化并向整个...

网友评论

      本文标题:必知必会的设计模式7

      本文链接:https://www.haomeiwen.com/subject/xtbxcltx.html