极客班C++设计模式第一周课程笔记——常用模式(1)

来源:互联网 发布:天猫淘宝怎么开店步骤 编辑:程序博客网 时间:2024/05/16 06:39

并不是提出一个问题就能一下子找对合适的设计模式,通常是在重构中获得模式。 寻找变化点 —> 在变化点处应用设计模式。

重构的关键技法

①模板方法 Template Method
模式定义:定义一个操作中算法的骨架(稳定),将一些步骤(变化)延迟到子类中。使得一个子类可以不改变一个算法的整体结构而重写该算法内部的一些步骤。
非常常用的一种手法,将小的具体的实现过程模块化。
具体实现中,被调用的虚方法可以具有实现也可以没有具体的实现(纯虚),一般推荐设置为protected方法。
Template Method
②策略模式 Strategy
将对象与算法解耦。
定义:定义一系列算法,将他们一个个封装起来,并且使他们可以互相替换(变化),该方法使得算法可独立于使用它们的客户程序(稳定)而变化。
Strategy
③观察者模式 Observer
解耦“通知依赖关系”
定义:定义对象间一种一对多(变化)的依赖关系,使得当一个对象(Subject)的状态变化时,所有依赖他的对象都得到通知,并自动更新。
目标发送通知时,不需要指定观察者,通知(可以携带通知信息作为参数)会自动传播。观察者自己决定是否需要订阅通知,目标对象一无所知。
Observer
0 0