不积跬步无以至千里,后继才能薄发
“设计模式”最开始是在建筑设计领域被提出的,其对城镇、邻里、住宅、花园和房间等进行设计的基本模式,提供了一些建筑设计中常见问题的解决方法。
而在之后,软件开发中的“设计模式”才被提出,并在1995年,多名作者合作出版的《设计模式:可复用面向对象软件的基础》(Design Patterns: Elements of Reusable Object-Oriented Software)一书中提出了23中设计模式,首次将软件设计模式进行具体定义和分类。
软件设计模式(Software Design Pattern),简称设计模式,是一套被反复使用,分类的代码编程经验的总结。它将软件设计过程中一些重复的问题的解决方法抽象出来,归纳为一系列的解决方法。可以提高代码的可重用性,可读性和可靠性。
设计模式的本质是面向对象设计原则的实际运用,是对类的封装性、继承性和多态性以及类的关联关系和组合关系的充分理解。
每个模式根据特点、所解决的问题、功能等属性进行命名。模式名称帮助我们记忆和实际软件设计过程中的交流。
问题描述了何时使用该模式,以及使用该模式的一些先决条件。
模式问题的解决方案包括设计的组成成分、它们之间的相互关系及各自的职责和协作方式。设计模式是一个模板,解决方案是通常是以类图形式展示,是对需要解决的问题的解决方案的抽象。
描述了模式的应用效果以及使用该模式应该权衡的问题,即模式的优缺点。主要是对时间和空间的衡量,以及该模式对系统的灵活性、扩充性、可移植性的影响。