Think In C++上面说,可以把模式的基本概念看做一般情况下程序设计的基本概念:增加一些抽象层(让我想到了沉思录上面经常说的一句话C++的惯用法用类来表示概念)。当人们对某事物进行抽象的时候,隔离特定的细节,最直接的动机之一就是为了变化的事物与不变的事物分离开。做到这一点的另一个方法是,一旦发现程序中的某些部分可能被修改,那么就要阻止那些修改在代码中到处传播副作用。
设计模式的目标是封装变化。书中讲到这样就可以把继承和组合看做一种设计模式,但是由编程语言直接支持的特性不能被称为设计模式,毕竟设计模式应该是和语言无关的。
设计模式的分类:1创建型:用于怎样创建一个对象,通常包括隔离对象创建的细节,这样代码不依赖于对象是什么类型,因此在增加一种新的对象类型时不需要改变代码。2结构型:影响对象之间的连接方式,确保系统的变化不需要改变对象间的连接。3行为型:在程序中处理具有特定操作类型的对象,这些对象封装要执行的操作过程,比如解释一种语言,遍历一个序列或者实现一个算法。
今天就到这,明天开始学习每一个具体的模式。