首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >编程范式、设计模式和应用程序架构之间的区别?

编程范式、设计模式和应用程序架构之间的区别?
EN

Stack Overflow用户
提问于 2011-01-25 06:10:32
回答 6查看 6.8K关注 0票数 23

我来自非编程背景,经常遇到编程范式、设计模式和应用程序架构等术语。虽然我认为我对这些术语的含义有一个模糊的理解,但如果有人能澄清它们是什么,它们之间有何不同,以及这些概念如何应用于目标C,我将不胜感激。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2011-01-25 06:18:47

编程范式:类似于"Functional Programming“、"Procedural Programming”和"Object Oriented Programming“。编程范例和使用它们的语言决定了代码是如何编写的。例如,在面向对象编程中,代码被划分为类(有时是语言特性,有时不是(例如javascript)),并且通常支持继承和某种类型的多态性。程序员创建类,然后创建类的实例(即对象)来执行程序的操作。在函数式语言中,计算机上的状态变化在很大程度上由语言本身控制。函数是第一类对象,尽管并不是所有函数是第一类对象的语言都是函数式编程语言(这个话题是一个很好的争论)。用函数式语言编写的代码包含了大量的嵌套函数,几乎程序的每一步都是新的函数调用。对于过程性编程,C程序和bash脚本就是很好的例子,你只需要说do step 1,do step 2,等等,而不需要创建类和其他东西。

设计模式:设计模式是一种有用的抽象,可以用任何语言实现。这是一种做事的“模式”。例如,如果你有一堆你想要实现的步骤,你可以使用“复合”和“命令”模式,这样你的实现就更通用了。可以将模式看作是一个已建立的模板,用于以通用方式解决常见的编码任务。

应用程序架构:考虑如何构建系统来完成任务。因此,对于web应用程序,体系结构可能涉及负载均衡器后面的x个网关,这些网关异步馈送队列。消息由运行在z台机器上的y个进程拾取,具有一个主数据库和一个备份从数据库。应用程序架构涉及选择所使用的平台、语言和框架。这与软件体系结构不同,软件体系结构更多地说明了如何在给定软件堆栈的情况下实际实现程序。

票数 24
EN

Stack Overflow用户

发布于 2011-01-25 06:28:37

一些简单的定义,

应用程序架构描述了软件的整体架构。例如,基于web的程序通常使用分层体系结构,其中功能被划分为若干层,诸如用户界面(html生成,处理来自用户的命令)、业务逻辑(如何执行软件的功能的规则)和数据库(用于持久数据)。相比之下,数据处理应用程序可以使用所谓的管道和过滤器体系结构,其中一段数据通过不同模块作用于数据的管道。

设计模式是一种低级的工具,提供了关于如何组织代码以获得特定功能而不会损害整体结构的经过验证的模型。简单的示例可能包括单例(如何保证代码的单个实例的存在)或外观(如何为更复杂的系统提供简单的外部视图)。

另一方面,范例是另一个极端,指导关于如何实际布局代码的原则,并且它们每个都需要完全不同的思维方式来应用。例如,过程性编程主要关注将程序逻辑划分为功能,并将这些功能绑定到模块中。面向对象编程的目的是将数据和操作数据的操作封装到对象中。函数式编程强调使用函数,而不是一个接一个的单独语句,从而避免副作用和状态更改。

Objective-C主要是对C语言的面向对象扩展,设计模式和体系结构不是特定于语言的构造。

票数 5
EN

Stack Overflow用户

发布于 2011-01-25 06:19:17

想一想这些术语的本土化解释(即,在计算机科学领域之外)。

函数式编程范例是包罗万象的计算视图,它不仅影响你能做什么事情,甚至影响你能有什么样的想法;函数式编程paradigm.

  • Patterns就是一个编程技巧的例子,在某种半正式的manner.

  • Application架构中被编成了一个宽泛的术语,用来描述复杂的应用程序是如何组织的。

Objective-C主要将面向对象范例的元素添加到命令式语言中,C的模式和体系结构在很大程度上与语言正交。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4787799

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档