Skip to content

Commit

Permalink
feat: update articles
Browse files Browse the repository at this point in the history
  • Loading branch information
wx-chevalier committed Aug 18, 2019
1 parent 80af473 commit 1bff299
Showing 1 changed file with 5 additions and 7 deletions.
12 changes: 5 additions & 7 deletions 编程范式与设计模式/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@

# 编程范式与设计模式

![mindmap](https://i.postimg.cc/Jz4vvTrm/image.png)

本篇的所有参考代码归纳在 [design-pattern-snippets](https://github.com/wx-chevalier/design-pattern-snippets) 仓库中。

# 编程范式

托马斯.库尔提出“科学的革命”的范式论后,Robert Floyd 在 1979 年图灵奖的颁奖演说中使用了编程范式一词。编程范式一般包括三个方面,以 OOP 为例:
Expand All @@ -20,7 +24,7 @@

与命令式编程相对的声明式编程(declarative programming)。顾名思义,声明式编程由若干规范(specification)的声明组成的,即一系列陈述句:‘已知这,求解那’,强调‘做什么’而非‘怎么做’。声明式编程是人脑思维方式的抽象,即利用数理逻辑或既定规范对已知条件进行推理或运算。

一些编程语言是专门为某种特定范式设计的,例如 C 语言是过程式编程语言;Smalltalk 和 Java 是较纯粹的面向对象编程语言;Haskell 是纯粹的函数式编程语言。另外一些编程语言和编程范式的关系并不一一对应,如 Python,Scala,Groovy 都支持面向对象和一定程度上的函数式编程。C++是多范式编程语言成功的典范。C++支持和 C 语言一样的过程式编程范式,同时也支持面向对象编程范式,STL(Standard Template Library)使 C++具有了泛型编程能力。支持多种范式可能是 C++直到现在仍然具有强大的生命力的原因之一。Swift 是一门典型的多范式编程语言,即支持面向对象编程范式,也支持函数式编程范式,同时还支持泛型编程。Swift 支持多种编程范式是由其创造目标决定的。
一些编程语言是专门为某种特定范式设计的,例如 C 语言是过程式编程语言;Smalltalk 和 Java 是较纯粹的面向对象编程语言;Haskell 是纯粹的函数式编程语言。另外一些编程语言和编程范式的关系并不一一对应,如 Python,Scala,Groovy 都支持面向对象和一定程度上的函数式编程。C++是多范式编程语言成功的典范。C++ 支持和 C 语言一样的过程式编程范式,同时也支持面向对象编程范式,STL(Standard Template Library)使 C++具有了泛型编程能力。支持多种范式可能是 C++直到现在仍然具有强大的生命力的原因之一。Swift 是一门典型的多范式编程语言,即支持面向对象编程范式,也支持函数式编程范式,同时还支持泛型编程。Swift 支持多种编程范式是由其创造目标决定的。

# 设计模式

Expand All @@ -30,12 +34,6 @@
毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。项目中合理的运用设计模式可以完美的解决很多问题,每种模式在现在中都有相应的原理来与之对应,每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的核心解决方案,这也是它能被广泛应用的原因。

总体来说设计模式分为三大类:

![mindmap](https://i.postimg.cc/Jz4vvTrm/image.png)

本篇的所有参考代码归纳在 [design-pattern-snippets](https://github.com/wx-chevalier/design-pattern-snippets) 仓库中。

## Gang of Four

在 1994 年,由 Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides 四人合著出版了一本名为 Design Patterns - Elements of Reusable Object-Oriented Software(中文译名:设计模式 - 可复用的面向对象软件元素) 的书,该书首次提到了软件开发中设计模式的概念。
Expand Down

0 comments on commit 1bff299

Please sign in to comment.