美文网首页APP开发实战
APP开发实战45-设计模式介绍3

APP开发实战45-设计模式介绍3

作者: xjbclz | 来源:发表于2016-06-07 22:45 被阅读17次

    13.3.5策略模式

    策略模式定义一系列的算法,并把每一个算法封装起来, 且使它们可相互替换,使得算法的变化可独立于使用它的客户。

    此模式的使用场景:

    (1)针对同一类问题的多种处理方式,仅仅是具体行为有差别时。

    (2)需要安全地封装多种同一类型操作时。

    (3)出现同一抽象类有多个子类,而又需要使用if-else或switch-case来选择具体子类时。

    如各类列表的排序功能,及计算各类商品的费用时(不同商品的单价和总价的计算方式可能不同),可以使用策略模式。

    13.3.6状态模式

    状态模式允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它所属的类。

    状态模式将每一个条件分支放入一个独立的类中,这使得可以根据对象自身的情况将对象状态作为一个对象,这一对象可以不依赖于其他对象而独立变化,通过多态来去除过多的、重复的if-else等分支语句。

    此模式的使用场景:

    (1)一个对象的行为取决于它的状态,且它必须在运行时根据状态改变它的行为。

    (2)代码中包含大量与对象状态有关的条件语句,且这些分支依赖于改对象的状态。

    (3)出现同一抽象类有多个子类,而又需要使用if-else或switch-case来选择具体子类时。

    如电商APP的订单对象有多种状态,及用户登录对象有已登录和未登录两种状态,都可使用状态模式。

    13.3.7命令模式

    命令模式将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可取消的操作。

    此模式的使用场景:

    (1)需要抽象出待执行的动作,然后以参数的形式提供出来。

    (2)需要支持取消操作。

    (3)支持修改日志功能和事务操作。

    如游戏开发和菜单功能开发,都可使用命令模式。

    13.3.8观察者模式

    观察者模式定义对象间的一种一对多的依赖关系,以便当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动刷新。

    此模式的使用场景:

    (1)有关联行为的地方。

    (2)事件多级触发的地方。

    (3)跨系统的消息交换,如消息队列和事件总线的处理机制。

    Android的BroadcastReceiver组件功能、GUI系统和订阅-发布系统,都是使用观察者模式。

    参考:《Android源码设计模式解析与实战》

    相关文章

      网友评论

        本文标题:APP开发实战45-设计模式介绍3

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