Design Patterns for Reuse

Behavioral patterns
如何交互和分配责任

  • 策略允许在运行时动态选择一系列算法中的一种。
  • Template method将算法的骨架定义为一个抽象类,允许它的子类提供具体的行为。
  • 迭代器按顺序访问对象的元素,而不公开其底层表示。

Strategy 整体地替换算法

  • Problem: 针对特定任务存在多种算法,调用者需要根据上下文环境动 态的选择和切换。
  • Example: 对客户列表进行排序(冒泡排序、合并排序、快速排序)
  • Solution:定义一个算法的 接口,每个算法用一个类来实现,客户端针对接口编写程序。

Advantage

  • 易于扩展的新算法实现
  • 分离算法从客户端上下文

在这里插入图片描述

Iterator Pattern

  • Problem: 客户端需要以统 一的、与元素类型无关的方式访问容器中的所有元素
  • Solution: 一种面向迭代的策略模式
  • Consequences: 隐藏了容器的内部 实现 ; 用统一的接口 支持多种遍历策略

Advantage

  • 易于更改容器类型
  • 便于程序各部分之间的通信

Pattern structure

  • 定义迭代器接口
  • 实现迭代功能
  • 获取迭代器对象的接口
  • 实现迭代器对象的获取

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值