设计模式笔记 - 概述

所有设计模式笔记基本上依据图说设计模式以及《Head First Design Pattern》总结写的,深入部分依然需要根据它们来仔细钻研。

设计模式(Design Pattern)是对软件设计中普遍存在的各种问题,所提出的具有针对性的解决方案。

设计模式并不直接用来完成代码的编写,而是描述在各种不同情况下,要怎么解决问题的一种方案。面向对象(OO)设计模式通常以类(class)或对象(object)来描述其中的关系和互相作用,但不涉及用来完成应用程序的特定类或对象。

设计模式能使不稳定趋于相对稳定、具体趋于相对抽象,降低代码间的耦合程度,提高软件设计的可扩张性,易于维护。设计模式也可以把开发人员的思想架构的层次提高至模式层面,而不是仅仅停留在琐碎的对象上。

设计模式与现有的库、框架有什么区别?

库和框架为我们提供了某些特定的方法,让我们的代码可以轻易地引用。而设计模式是提供开发人员如何更加有效的组织代码,提高代码的复用、使代码更加容易维护。某些库和框架当中也会使用设计模式,但是它们不是设计模式。


设计模式中遵循以下设计原则:

  • 找出应用中可能需要变化的地方,把它们独立出来,不要和那些不需要变化的代码混在一起。即把需要变化的部分进行封装,以便以后进行修改或扩展,和其他稳定的代码相区分,使系统更有弹性。
  • 针对接口编程,而不是针对实现编程面对接口编程,使用接口作为基类而非抽象类的原因,而为什么使用接口替代抽象类,接口代表的是一种行为规范,而抽象类代表的具体类的雏形,两者代表的意义不同。
  • 多用组合, 少用继承


参考资料:

[1] https://zh.wikipedia.org/wiki/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F