名词区分


1、模式(pattern)与设计模式(Design Pattern)

模式(pattern)是针对某一类问题的方法论,是将解决某类问题的方法上升到了理论的高度,模式在不同领域有不同的叫法,建筑领域有建筑模式,软件设计领域有设计模式。

它不再是说针对某类问题我采用什么方法,而是说我采用什么模式,是一种特定的高度总结的一套方法论。

以其设计理论和丰富的建筑设计作品而闻名于世的建筑师 Christopher Alexander 说过:“每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复劳动”。

设计模式(Design Pattern)是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。

设计模式有四大要素:模式名称、问题、解决方案和效果。

2、回溯(Backtracking)与递归(Recursion)

在函数中调用自身的方法称为递归。

回溯法描述一种过程,因在一条路上探到了尽头而返回去探另外的路,直到把所有路探尽,常用递归来实现。回溯有剪枝的功能,剔除掉一些无用的条件,从而达到算法优化的目的。

递归只是一种编程实现,回溯是一种算法思想。