设计模式——架构师的重要武器
设计模式的作用
面向对象程序的设计目的一定是强内聚、低耦合的。
基于这个目标,就出现了OOD原则:单一职责原则,开闭原则,接口隔离原则,里氏替换原则和依赖倒置原则。
设计模式是基于OOD原则的软件设计经验的总结。
框架是基于设计模式的一种特定实现,是一组软件组件,是一种特殊的软件,是实现应用程序的基础。
应用程序是指为实现某种目的而编写的软件程序。
基于上图我们可以看出,设计模式是编写框架,实现应用程序的根基,它是基于面向对象的设计原则的软件设计经验的总结,是前人经验的传承,它是对真实世界的抽象,正确的使用设计模式可以提高了我们软件复用的水平,节约设计成本,从而提高了生产效率,
设计模式的定义
设计模式是什么?
在特定环境下为解决某一通用软件设计问题提供的一套定制的解决方案,该解决方案描述了对象和类之间的相互作用
是一种可以使人们更加方便简单复用成功的设计模式和结构的经验传承
是一种可以使人们深入理解面向对象的设计思想,提高软件的开发效率,节约设计成本软件设计方案
基本要素
设计模式包含4个基本要素:
模式名称
通过一两个关键词来描述模式的问题、解决方案和效果,以便更好的理解和更好的交流
待解决问题
描述了何时需要使用这种设计模式,以及运用设计模式的环境场合
解决方案
描述了组成设计的元素、它们的关系、职责以及合作。它提供设计问题的抽象描述和怎样使用一个具有一般意义的元素组合(类或者对象做组合)来解决这个问题
结论/效果
描述运用这种方案的利与弊。主要是指它对系统的弹性、扩展性和可移植性的影响
设计模式的分类
设计模式的分类有两种:
按照功能分
* 创建模式:对类实例化过程的抽象
* 结构模式:将类或者对象结合在一起形成更大的结构
* 行为模式:对在不同的对象之间划分职责和算法的抽象
按照方式分
* 类模式:以继承方式实现的模式,静态的
* 对象模式:以组合方式实现的模式,动态的
详细的分类可以参考下述脑图
设计模式的优点
设计模式是一套标准,它提供了一套通用的设计词汇和一种通用的语言,使得开发人员沟通和交流更方便,使得设计方案更加通俗易懂。
每一个模式都对应一个标准的行业解决方案,可以更加简单方便的复用成功的设计和体系结构,设计模式使得重用成功的设计更加容易,并避免导致不可重用的设计方案
设计模式使得设计方案更加灵活,且易于修改,设计模式中广泛的使用了面向对象设计原则,使得系统具有较好的可维护性,较高复用度
设计模式的使用将提高软件系统的开发效率和软件质量,且在一定程度上节约设计成本
架构师与设计模式
架构师不应该只是能画出漂亮的图,写出高级的文档,更应该是一个团队的主心骨。那如何成为一个团队的主心骨呢?我认为应该用设计模式打磨自己的工具箱,通过优秀的设计让团队在一个高效、舒服、便捷的开发环境进行软件开发;通过对设计模式的深刻理解,重构系统,提升系统灵活程度、可复用程度等等。
代码重构能力是架构师最基本的能力之一,精通设计模式是重构代码的重要步骤。
版权声明: 本文为 InfoQ 作者【拈香(曾德政)】的原创文章。
原文链接:【http://xie.infoq.cn/article/bd47b7fa60a31a319b32f797a】。文章转载请联系作者。
评论