2、设计模式——组件协作

应用设计模式的目的:

  • 在变化和稳定之间寻找隔离点,分离稳定和变化并来管理变化
  • 应对变化,提高复用

什么时候使用设计模式:

  • 寻找变化点,在变化点使用设计模式,理解什么时候什么地点使用设计模式
  • 没有一步到位的设计模式,随着代码的开发带来的变化一般要经过几次重构

重构的关键技法:

  • 静态 ->动态
  • 早绑定 ->晚绑定
  • 继承 ->组合
  • 编译时依赖 ->运行时依赖
  • 紧耦合 ->松耦合

组件协作模式

  • Template Method
  • Strategy
  • Observer/Event

Template Method

具有稳定的整体操作结构,但是子步骤却有改变的需求。

定义:定义一个操作的骨架,而将一些步骤延迟(就是指的晚绑定,一般用虚函数来实现)到子类中,使得子类可以不改变(重用)一个算法的结构即可重新定义一些步骤。

Strategy

在软件构建的过程中,某些对象使用的算法可能多种多样,如果将这些算法都编码到对象中,将会使对象变的异常复杂。而且不使用的算法也可能会变为一个性能负担。

如果代码中存在大量的条件判断,考虑选用Strategy模式,用来消除条件判断语句,进行解耦合。

定义:定义一系列算法,把他们封装起来,并使得他们可以相互替换(变化)运行在程序中。

Observer

在软件构建过程中,我们需要为某些对象建立一种通知依赖关系,就是目标对象状态发生改变时所依赖的对象(观察者)需要得到通知。

定义:定义对象间一对多的一种依赖关系,以便一个对象发生改变时所依赖的对象都会得到通知。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值