架构师训练营第 3 周学习总结
简述
本周主要学习的是设计模式,设计模式是针对某一类问题的通用的、可重复使用的解决方案。设计模式遵从SOLID设计原则,最终达到软件设计的高内聚、松耦合的目标。从功能上分,设计模式可以分为建造模式、结构模式、行为模式三类;从方式上分,可以分为类模式和对象模式两类。
Day1
讲述Flower框架,了解了一个框架的设计过程。(略过)
课程从一个排序问题引出了简单工厂模式,讲述如何创建排序算法对象,通过引入简单工厂模式,并以一步步改进原来的设计,最终达到对修改关闭、对扩展开放的原则。
单例模式
单例模式,讲述了单例模式的两种方式,懒汉式和饿汉式。使用单例模式的原因有:减少实例频繁创建和销毁带来的资源消耗(性能需求)、便于对多用户使用同一资源的管理(功能需求)。
适配器模式
适配器模式,通常在无法改变现有接口,且需要兼容不同接口时使用。适配器模式有两种实现方式,一种是类适配器,一种是对象适配器。根据组合优于继承的原则,我们通常使用对象适配器。适配器的应用有JDBC Driver(适配具体数据库到JDBC)。
Day2
接着讲述使用Junit进行单元测试,进一步学习了JUnit中使用的设计模式。
模板方法模式
模板方法模式,它通过继承的方式来实现扩展,基类负责实现算法的轮廓和骨架,子类负责算法的具体实现。模板方法模式通过继承的方式达到业务逻辑和代码的复用,是框架设计时常用的设计模式。
策略模式
策略模式,策略模式是扩展功能的另一种最基本的模式,通过该模式我们可以在代码重构时消除代码中的if-else(通常会结合工厂模式来做)。另外结合模板方法模式,可以实现策略模式的骨架代码,减少项目中的重复代码。
组合模式
组合模式,它可以很好的表示一种树状结构,极大的简化的客户端的使用方式。组合模式应用在文件系统、AWT控件等。
装饰器模式
装饰器模式,它在不改变客户端接口的前提下,扩展现有对象的功能。装饰模式比较经典的是应用在Java I/O类库中。
总结
设计模式的学习不建议一开始就学习模式本身,结合实际项目可以学习得更快,平时开发过程中也可以利用设计模式来重构现有的不合理设计(但切记过度设计)。
设计模式的使用应该做到活学活用,不应该生搬硬套,有时可以对现有模式做一些改动,从而是模式更符合实际的问题。另外模式往往是结合使用的,我们在设计中不应该局限于某个模式,比如:
工厂模式和策略模式相结合,能够处理策略对象的创建问题,使代码符合开闭原则
通过模版方法模式,可以抽象策略类,提取公用逻辑,减少重复代码,规范执行流程
版权声明: 本文为 InfoQ 作者【Season】的原创文章。
原文链接:【http://xie.infoq.cn/article/b0312b0db6ff733c637a8eef5】。未经作者许可,禁止转载。
评论