第三章学习笔记
设计模式
每一种设计模式都描述了一种问题的通用解决方案。
设计模式是一种可重复使用的解决方案,关键点在于重复使用。
简单工厂设计模式
通过对排序器的实现进行逐步分析,得出如下结论,使用简单工厂模式的缺点:不符合开闭原则,但是可以通过配置文件的方式解决(在工厂中,通过读取配置文件中配置的类名进行反射,从而获取到该类的实例)不符合开闭原则的问题,但是依然存在编译是类型安全问题和实现类只能调用默认构造函数的问题。
单例模式
单例模式保证产生单一实例。使用单例模式主要又以下两个原因:
性能需求:只有一个实例可以减少实例频繁创建和销毁带来的资源消耗
功能需求:多用户使用实例的时候,便于统一管理
适配器模式
适配器模式把已经存在的对象方法适配成我们需要的接口方法,从而实现开闭原则,实现接口策略和依赖倒置。
使用场景:系统需要使用现有的类,而这个类提供的接口与我们所需要的接口又不相同,这个时候就需要使用适配器模式。
JUnit中的设计模式
模板方法模式
模板方法模式:它是一种“类的行为模式”,是通过继承的方法来实现扩展的。在模板方法模式中一定有自己的特征,它的父类中要定义模板方法,这些模板方法是抽象的,子类中要实现这些模板方法
基于继承的模板方法比组合更容易实现
模板方法的形式:
抽象方法:强制子类实现该步骤
具体方法:子类不需要覆盖,但也可以覆盖之
钩子方法:子类可选择性的覆盖之,以便在特定的时机做些事情
策略模式
它是一种“对象的行为模式”,通过组合的方法来实现扩展
开发的时候针对策略接口进行开发,运行期通过注入不同的接口实现,从而实现开闭原则
策略模式的使用场景:
系统需要在多种算法中选择一种
重构系统时,将条件语句转换成对于策略的多态性调用(当代码中有大量的if else语句时,就可以考虑使用策略模式,利用多态性来优化代码)
组合模式
组合模式是一种“对象的结构模式”
组合模式很多时候是在用树的结构进行处理
装饰器模式
装饰器模式是一种“对象的结构模式”
能够在不改变对客户端的接口的前提下,扩展先有对象的功能
简言之,装饰器模式是在父类或者是在接口类的执行基础上,对它进行装饰或者进行包装再执行
装饰是可以互相装饰,可以不停的装饰下去
Spring中的设计模式
依赖注入DI与控制反转
单例模式
不同于传统的单例模式,不需要使用private的构造函数,限制类的创建,通过map来保证每个实例只有一个,详细如下:
Spring MVC模式
小结
本周老师通过从Sorter和Junit以及Spring 三个案例进行逐步讲解,讲解了多个设计模式,对设计模式有了跟深入的了解,要充分利用设计模式的开发之美,让代码的逻辑更简洁,更精炼,好的代码是会让人赏心悦目的。课后需要更深入的学习学习设计模式!!!
版权声明: 本文为 InfoQ 作者【博博】的原创文章。
原文链接:【http://xie.infoq.cn/article/d1032ef69cb6a425c64d37a35】。文章转载请联系作者。
评论