2010年2月12日初稿
附录C:编程范式与设计模式
C.1 编程范式和编程思想
C.1.1 编程范式
在附录A中我们按“代”的方式对计算机编程语言进行了分类,其实编程语言还可以按“范式”进行分类。
下面先解读一些有关的基本概念。
编程
编程就是进行针对计算机的程序设计。计算机程序是指令和数据的集合,它告诉或命令计算机如何解决问题或如何执行任务。
范式
我们都很清楚,编程的最终目的是想让计算机帮助我们解决实际问题,而解决任何问题都可以有不同的解决思路和解决方法,所谓“条条道路通罗马”就是表述这样的意思,而这其中普遍适应、且行之有效的模式被归结为范式。
每种范式都引导人们带其特有的倾向和思路去分析和解决问题[A1]。
编程范式
所谓编程范式就是指计算机编程的基本风格或典范模式。或者说指的是将计算机要执行的任务概念化和结构化[A1]。
我们说过,现在可用的计算机编程语言多达数百种,它们能共处于一个时代,其中必然有着各自的特点和用途。这样也就导致了多种编程范式的存在。
常见的编程范式有以下几种:
编程就是进行针对计算机的程序设计。计算机程序是指令和数据的集合,它告诉或命令计算机如何解决问题或如何执行任务。
范式
我们都很清楚,编程的最终目的是想让计算机帮助我们解决实际问题,而解决任何问题都可以有不同的解决思路和解决方法,所谓“条条道路通罗马”就是表述这样的意思,而这其中普遍适应、且行之有效的模式被归结为范式。
每种范式都引导人们带其特有的倾向和思路去分析和解决问题[A1]。
编程范式
所谓编程范式就是指计算机编程的基本风格或典范模式。或者说指的是将计算机要执行的任务概念化和结构化[A1]。
我们说过,现在可用的计算机编程语言多达数百种,它们能共处于一个时代,其中必然有着各自的特点和用途。这样也就导致了多种编程范式的存在。
常见的编程范式有以下几种:
1、过程化编程
常见的BASIC、FORTRAN等语言,它强调线性、一步接一步的算法,为计算机提供如何解决问题或执行任务的指令。
2、面向对象编程
常见的C++、Java、C#等语言,程序由一系列对象和方法构成,它们交互完成特定任务。
3、事件驱动编程
常见的Visual Basic、C#等语言,专注于选择用户界面元素和定义由不同的鼠标和键盘活动来激活的事件处理程序流程。
常见的BASIC、FORTRAN等语言,它强调线性、一步接一步的算法,为计算机提供如何解决问题或执行任务的指令。
2、面向对象编程
常见的C++、Java、C#等语言,程序由一系列对象和方法构成,它们交互完成特定任务。
3、事件驱动编程
常见的Visual Basic、C#等语言,专注于选择用户界面元素和定义由不同的鼠标和键盘活动来激活的事件处理程序流程。
编程范式不仅仅局限于上述的几种,有很多编程范式存在。它们之间并不会发生任何冲突,在一个程序设计中可能会使用到不同的编程范式来解决不同的问题。范式的世界观体现在该编程语言的核心概念中,范式的方法论体现在该编程语言的表达机制中。
有些编程语言支持单一的编程范式,如Java。而有些编程语言则支持多个范式,它们被称为多范式语言,如C++。比如C++既可以用于过程化编程,也可以用于面向对象的编程。 因此,在程序设计中如何使用某种范式仅仅取决于程序员对问题的处理方式。
这里需要强调的概念是:编程范式是一个抽象的概念,它不针对任何具体的编程语言。
编程范式是计算机编程中的基本风格和典范模式,是编程者在程序设计中自觉不自觉采用的世界观和方法论。每种范式都引导设计者带着其特有的倾向和思路去分析和解决问题[A2]。
有些编程语言支持单一的编程范式,如Java。而有些编程语言则支持多个范式,它们被称为多范式语言,如C++。比如C++既可以用于过程化编程,也可以用于面向对象的编程。 因此,在程序设计中如何使用某种范式仅仅取决于程序员对问题的处理方式。
这里需要强调的概念是:编程范式是一个抽象的概念,它不针对任何具体的编程语言。
编程范式是计算机编程中的基本风格和典范模式,是编程者在程序设计中自觉不自觉采用的世界观和方法论。每种范式都引导设计者带着其特有的倾向和思路去分析和解决问题[A2]。
C.1.2 编程思想
编程范式是抽象的概念, 它并不涉及或针对某特定的计算机编程语言。当抽象的编程范式通过某种编程语言来具体体现时就形成了该编程语言的编程思想的核心。比如Java它的编程方式就属于面向对象类,而它的编程思想的核心就是面向对象的编程。
应该讲,编程思想包含了该编程语言的全部特征,包括范式、语法、结构、设计模式等等全部的内容。同样可以说:编程思想的世界观体现在该编程语言的核心概念中,编程思想的方法论体现在该编程语言的表达机制中,所以深入理解和探讨编程语言的编程思想是非常必要的。
比较常见的C++编程思想、Java编程思想、C#编程思想等巨著都是表述这方面的内容。
应该讲,编程思想包含了该编程语言的全部特征,包括范式、语法、结构、设计模式等等全部的内容。同样可以说:编程思想的世界观体现在该编程语言的核心概念中,编程思想的方法论体现在该编程语言的表达机制中,所以深入理解和探讨编程语言的编程思想是非常必要的。
比较常见的C++编程思想、Java编程思想、C#编程思想等巨著都是表述这方面的内容。
C.2 设计模式
模式
模式是在某种情境下,针对某些问题的某种解决方案[C1]。设计模式不是软件产品,而是软件的战术思想,它侧重于思想重用[A2]。
设计模式
设计模式是对软件设计中普遍存在(反复出现)的各种问题,所提出的解决方案。设计模式并不直接用来完成程序代码的编写,而是描述在各种不同情况下,要怎么解决问题的一种方案。
设计模式一种典型的经验复用而不是代码的复用。设计模式是依附于编程语言的,不同的编程语言会产生不同的设计模式。但是,不是语言来决定设计模式的存在,而是该语言在解决反复出现的问题时设计经验的重用。
通过对设计模式的了解,可以学习到经过实践检验的一些软件设计方法,学习它,可以让你踏着前人铺的路,更快的前进。
模式是在某种情境下,针对某些问题的某种解决方案[C1]。设计模式不是软件产品,而是软件的战术思想,它侧重于思想重用[A2]。
设计模式
设计模式是对软件设计中普遍存在(反复出现)的各种问题,所提出的解决方案。设计模式并不直接用来完成程序代码的编写,而是描述在各种不同情况下,要怎么解决问题的一种方案。
设计模式一种典型的经验复用而不是代码的复用。设计模式是依附于编程语言的,不同的编程语言会产生不同的设计模式。但是,不是语言来决定设计模式的存在,而是该语言在解决反复出现的问题时设计经验的重用。
通过对设计模式的了解,可以学习到经过实践检验的一些软件设计方法,学习它,可以让你踏着前人铺的路,更快的前进。

