「学习笔记」 10.31 | 设计模式(一) | Template Method(模板方法)

一、GOF-23 设计模式分类

这一块我没有学完,看也不太懂,网上很多,不做记录,等学习完再来看理解可能更深

二、组件协作模式之模板方法

组件模式通过晚期绑定来实现框架与应用之间的松耦合,让稳定中有变化,是二者之间协作时常用的模式。

Template Method(模板方法)–应用广泛、最简单的一种模式

定义:太繁琐,不记

理解:类似java中的抽象类,规定一个抽象类的模板是什么样子的,只做声明不做实现,但是但凡继承抽象类里面的东西必须实现。也就规定好了我给你的这么一个框架,中间有一些是我实现的,有一部分你自己来实现。

也有点像先在的框架,SPring,Mavern,SpringBoot,这些框架把很多繁琐的细节都封装好了,尤其是SSM到SrpingBoot,有很多细节都已经被隐藏。给人只见树木不见森林的朦胧美(个pi)

总结

不用模板方法就像咱农村的孩子,家庭给了一部分诸如身体、姓名、基本物资这样的东西,然后其他的比如未来怎么走、学习什么技能,全靠孩子自己实现。

用了模板方法就像城市里的孩子,一切都规划好了,出生到死亡,上辅导班,上重点大学,继承家产…

规范化说法

程序库开发人员开发出的流程调用应用程序员写的东西–晚绑定,也就是模板方法。(早开发的调用晚开发的)

应用程序员开发出的流程调用程序类库开发人员写的东西–早绑定。

(晚开发的调用早开发的)

缺点、不适用场合

模板的前提是胸有成竹,确保模板的正确性,能洞析全局,能确定的把空什么是稳定的什么是变化的。在不确定的领域使用模板方法显然就是不稳定的。

三、散装知识点

1.好的面向对象设计模式

可复用,应对变化

2.模板方法重要思想

  • 看代码的时候要分清楚,哪些是变化的,哪些是不变的。设计模式是根据软件需求不断变更的特点来的:需求一直在变化。而设计模式就是在变化的点进行操作,从而实现可复用、高效率。什么时候、什么地点用设计模式比看懂设计模式看懂代码更重要。
  • 倘若一切都是稳定的时候,设计模式也就没有意义了。设计模式就是在变化和稳定之间找一个隔离点,从而实现变化和稳定的隔离。
  • “把变化像小兔子一样关在笼子里面,让他在笼子里随便跳”
  • 设计类的时候画出类图,分析哪些稳定哪些变化,会更理解面向对象的设计模式。
  • 实际上会使用、看的懂虚函数,就已经在运用模板方法了。
  • 绝大部分程序里面都使用了模板方法
  • 具体实现的时候,模板方法中的虚方法可以实现也可以不实现。一般都设置为protected的,因为这些方法单独存在,public出去是没有意义的,需要在流程中实现才有意义。

3.敏捷软件开发的原则:重构造模式。

4.什么是重构?

他终于来了,我以前不知道重构是什么。重构是之前写了一堆代码,但是效率性能复用性方面不够好,我对代码进行重新构造布局,使用更合适的设计模式或者方法来对代码进行重新设计。这时候其实代码已经完成了的,只是需要对其进行一些加工操作(这是自己的理解,以后发现问题再更正)

5.重构的关键方法

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

6.才了解到原来开发人员还有类库开发人员和程序库开发人员。一个是造轮子,一个负责使用。当然前者水平更高些。

7.C++中的虚函数是什么?析构函数是什么?

最近在学,学到的时候留意。

指针和虚函数都是属于晚绑定机制

8.规则:写一个基类需要把基类里的析构函数写成虚的。稳定的代码需要写成非虚函数,变化的代码需要写成虚函数

四、下期、下下期预告

下 期:Strategy(策略模式)

下下期:Observer / event(观察者模式)

五、推荐书籍

《重构–改善既有代码的设计》

《重构与模式》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值