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

2024-01-06

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


编程范式:类似于“函数式编程 http://en.wikipedia.org/wiki/Functional_language", "过程式编程 http://en.wikipedia.org/wiki/Procedural_programming", and "面向对象编程 http://en.wikipedia.org/wiki/Object_oriented_programming“。编程范式和使用它们的语言决定了如何编写代码。例如,在面向对象编程中,代码被分为类(有时是语言功能,有时不是(例如 javascript)),并且通常支持继承以及某种类型的多态性。程序员创建类,然后创建类的实例(即对象)来执行程序的操作。在函数式语言中,计算机上的状态变化很大程度上由语言本身控制. 函数是第一类对象,尽管并非所有函数是第一类对象的语言都是函数式编程语言(这个话题是一个很好的争论)。用函数式语言编写的代码涉及大量嵌套函数,几乎程序的每一步都是新函数调用。对于过程式编程,C 程序和 bash 脚本是很好的例子,您只需说执行步骤 1、执行步骤 2 等,without创建类等等。

设计模式:设计模式是一种有用的抽象,可以用任何语言实现。它是一种做事的“模式”。就像如果您想要实现一堆步骤一样,您可以使用“复合”和“命令”模式,以便使您的实现更加通用。将模式视为以通用方式解决常见编码任务的既定模板。

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

  • 在文本视图滚动之前无法看到 UITextView 中的文本

    我的应用程序中有一堆文本视图 由于某种原因 无论我以编程方式 来自互联网 还是通过界面生成器 硬编码 设置 UITextView 文本 无论我做什么 当我在测试时转到该文本视图时它都是空白的 但当我滚动它的那一刻 所有文本就突然出现了 只是
  • Objective-C:int值无故改变

    Objective C 我需要帮助保留 int 的值 无需我的命令 它就在我身上发生变化 最初的问题是 如何声明和保留 int 这在另一篇文章中得到了满足 Objective C 如何声明和保留 int https stackoverflo
  • 单例属性

    好吧 如果我创建一个单例类并通过公共静态属性公开单例对象 我明白了 但我的单例类还有其他属性 这些应该是静态的吗 这些也应该是私人的吗 我只想通过执行以下操作来访问单例类的所有属性 MySingletonClass SingletonPro
  • iPhone UINavigationBar 使用 [UINavigationBar 外观] 更改所有控制器的字体样式

    我知道我可以单独更改导航栏的字体 如本答案所述 更改导航栏的字体 https stackoverflow com questions 5832036 change the navigation bars font 目前我正在使用一种更全局的
  • 如何解决 CoreData mogenerator 未找到问题

    我收到如下所示的错误 我不知道我错过了什么 我该如何解决这个问题 如下图所示 Users nischalhada Documents XcodePro mnepalnews revisited 2 0 CoreData mogenerato
  • 在 Swift 中使用 CommonCrypto 解密时出现问题

    我在一家Swift only加密 解密Extension for String and NSData 并且 crypt 部分的工作基于 Zaph 在链接问题中提供的答案 在 Swift 中使用 CCCrypt CommonCrypt 时出现
  • 防止 AlertView 被解雇

    任何人都可以帮助我防止在其按钮单击事件上解雇警报视图吗 我有一个 textview 作为我的alertView 的子视图 如果 textview 值为 nil 我不想关闭它 因为这是一个非常老的问题 但我得到了一个解决方案 并且如果其他开发
  • 来自 iPhone/iPad 的 json Web 服务

    有人可以帮助我解决如何从 iphone 或 ipad 使用 json Web 服务的问题吗 这里我的要求是使用 API 密钥实现 json webservice 如果可能的话发布一些教程或示例链接 谢谢 规范的 JSON 处理库是here
  • Swift 闭包作为 AnyObject

    我尝试使用这个方法 class addMethod 在 Obj c 中使用如下 class addMethod self class selector eventHandler imp implementationWithBlock han
  • 两者都实现了类。将使用两者之一

    我有一个项目 它具有使用 SocketRocket 的依赖项 通过 CocoaPods 安装 并从 HeapAnalytics 导入了静态库 显然 HeapAnalytics 库已经使用了 SocketRocket 编译时没有出现错误 但在
  • iCloud loadFrom Contents - 如何处理 UIDocumentStateSavingError 和 UIDocumentStateEditingDisabled

    我在我的应用程序中使用 iCloud 来加载文本文件 加载文本文件时 当我调用时 iCloud 会调用此方法 UIDocument openWithCompletionHandler BOOL success etc BOOL loadFr
  • Objective-C / C 给出枚举默认值

    我在某处读到过关于给枚举默认值的内容 如下所示 typedef enum MarketNavigationTypeNone 0 MarketNavigationTypeHeirachy 1 MarketNavigationTypeMarke
  • UISplitViewController - 推送模态视图

    使用 UISplitViewController 时推送模态视图的最佳实践是什么 您会从 RootViewController DetailViewController 还是直接从应用程序委托推送 理想情况下 我想要实现的功能是在基于某些条
  • C# 扩展方法 - 设计模式

    我想知道 C 扩展方法是否基于任何现有的设计模式 设计模式只是一种众所周知的范例 即 当你想实现 X 时 就做 Y 面向对象语言 例如 C 中的一个众所周知的范例是 当您想要对对象的状态进行操作时 调用它的实例上的方法 但是 在创建扩展方法
  • 确定 NSView 是否绘制的正确方法

    有没有正确的方法来确定是否NSView实际上是否在当前视图层次结构中绘制 考虑以下情况 视图完全在屏幕外 不是强制性的 该视图不在视图层次结构的顶部 The isHidden and isHiddenOrHasHiddenAncestor不
  • 线程 1:信号 SIGABRT - AppDelegate.h

    main m Journey Created by Julian Buscema on 2014 07 13 Copyright c 2014 Julian Buscema All rights reserved import
  • Objective C UIImagePNGRepresentation内存问题(使用ARC)

    我有一个基于 ARC 的应用程序 它从 Web 服务加载大约 2 000 个相当大 1 4MB 的 Base64 编码图像 它将 Base64 解码后的字符串转换为 png图像文件并将其保存到磁盘 这一切都是在一个循环中完成的 我不应该有任
  • 所有编程语言都是按顺序读取的吗?

    我似乎无法找到对此的直接答案 使用多个搜索引擎给我的结果非常模糊 或者只回答了一半的问题 那么 详细来说 当您编写一个程序并对其进行编译 解释时 计算机是按时间顺序顺序读取每一行还是默认情况下跳过 Example 使用 C 风格的源代码 因
  • 使用 Storyboard 时获取 NSManagedObjectContext

    目标是获取当前的 NSManagedObjectContext 以便使用 Core Data 在 iOS 4 3 中 我将 UINavigationController 的委托设置为 AppDelegate 如下所示 在 AppDelega
  • 我应该在哪个方法中设置 UITextField 的委托?

    在 viewDidLoad 或 init 方法中设置 UITextField 的委托是一个好习惯吗 我尝试在 init 方法中将委托设置为 self 但它没有调用相应的委托方法 当我将代码移动到 viewDidLoad 中时 它注册为将 s

随机推荐

  • 如何在 GWT 表单面板中发布整个页面

    使用 GWT FormPanel 时 提交表单后 它会发布表单但不会重定向到操作 url 有谁能够帮助我 formPanelObject getElement
  • SSIS存储过程使用临时表2008和2014

    我目前正在编写一个 SSIS 包 它通过 OLE DB 源从存储过程中检索数据 存储过程包含一个相当讨厌的查询 我可以通过使用临时表来改进它 如果我将这些临时表切换为表变量 逻辑读取次数会从大约 130 万次跃升至大约 5600 万次 我对
  • 如何在android列表视图中使整行可点击

    我有一个ListView 其内容假设android在第一行 黑莓在第二行 iphone在第三行 所以现在我想让ListView的整行可点击 但是当我点击listview行的上面内容时 它只执行点击事件 但我如果我单击连续的任何位置 则应该执
  • 如何向已调试的Android应用程序授予权限?

    I have
  • Gitlab CI 作业在运行 mocha 测试之前成功

    我发现我的 Gitlab 作业正在成功并在实际测试运行之前结束 首先 我为我的应用程序安装所需的依赖项 然后调用mocha命令 但作业在它们产生任何输出之前就成功了 我的 gitlab ci yml image node lts alpin
  • ParticleSystem 中 BufferGeometry 的 Z 缓冲区问题

    在我的应用程序中 我遇到了 z 缓冲区的问题 我有一个粒子系统 其中的点具有看起来像球体的纹理 但有两个问题我无法同时解决 球体要么在 z 缓冲区中正确排序但不透明 要么它们是透明的但排序不正确 请看看我的JSfiddle http jsf
  • Java 泛型 - 类型信息消失?

    好的 我知道 Java 泛型对于粗心的人来说可能是一个雷区 但我刚刚遇到了一个不直观的 无论如何对我来说 行为 我想知道是否有人可以解释 首先 这是一个编译类 public class Dummy public List
  • Gradle 食谱“为其他插件创建源和资源目录”

    我可以在食谱中看到以下内容 task create dirs lt lt sourceSets all java srcDirs each it mkdirs sourceSets all resources srcDirs each it
  • 在 Google Cloud 中将 http 重定向到 https

    我已经设置了一个负载均衡器 它接受来自用户的 https 连接 然后 计算引擎使用 http 连接连接到负载均衡器 我在根文件夹中编写了以下 htaccess 文件 RewriteEngine On RewriteCond HTTPS of
  • 如何计算图表的趋势线?

    谷歌不是我的朋友 自从我在大学上统计课以来已经很长时间了 我需要计算图表上趋势线的起点和终点 有没有一种简单的方法可以做到这一点 使用 C 工作 但任何适合你的语言 感谢大家的帮助 我已经离开这个问题几天了 刚刚回来 能够将其拼凑在一起 不
  • 在Python中,一行中的多个“with”语句是否相当于嵌套的“with”语句?

    这两个陈述等价吗 with A as a B as b do something with A as a with B as b do something 我问是因为两者a and b改变全局变量 这里是张量流 和b取决于所做的更改a 所以
  • 使用 Git diff 检测代码移动 + 如何使用 diff 选项

    考虑文件 1 c 包含三个函数以及作者 M 和 J 所做的更改 如果有人运行git blame 1 c 他将得到以下输出 869c699 M 2012 09 25 14 05 31 0600 1 de24af82 J 2012 09 25
  • MVC @Html.DropDownList 在 ViewBag 中使用 SelectList 时出现错误

    我有一个在控制器中创建的列表 var PayList new new ListEntry Id 1 Name new ListEntry Id 2 Name Yes new ListEntry Id 3 Name No ViewBag Pa
  • 如何使用事件处理程序检测实时 DigiScan 图像何时完成获取完整帧?

    我正在寻找实时 DigiScan 图像的快照 但是 我只想在获取完整 或接近完整 的帧时才这样做 将事件处理程序附加到实时 DigiScan 图像不起作用 因为图像会随着连续采集的每一行而 变化 我希望仅监视实时图像的最后几个像素 并仅在这
  • Wordpress 有条件 if is_single

    我尝试在我的 single php 页面上使用条件语句 我想要做的是 如果它是自定义帖子类型 current products 则使用特定的 single product php 模板页面 如果不是 即标准博客文章 则使用默认的 singl
  • 使用 LINQ to MySQL (DbLinq) 和动态 LINQ 的可排序 JqGrid - Orderby 不起作用

    我在 JqGrid 中排序条目时遇到问题 Orderby 似乎不起作用 我在代码中设置了断点 我注意到 orderby 不会改变元素的顺序 知道可能出什么问题吗 我正在使用 LINQ to SQL 和 MySQL DbLinq 项目 我的操
  • 如何使用 BERT 进行机器翻译?

    我遇到了一个大问题 对于我的学士论文 我必须使用 BERT 制作一个机器翻译模型 但我现在一事无成 您知道可以在这里帮助我的文档或其他东西吗 我已经阅读了一些这方面的论文 但也许有文档或教程可以帮助我 对于我的学士论文 我必须将文本摘要翻译
  • 如何让 JavaScript 延迟,然后刷新页面

    我希望我的 JavaScript 在我创建的函数结束时等待七秒钟 然后刷新我的页面 如果它很重要 我在下面列出了 JavaScript 和 HTML 的重要部分 JavaScript var textfill function var no
  • 录音在java中不工作

    我正在尝试通过java录制声音 该声音正在我的Windows机器上通过扬声器 耳机播放 我遇到的问题是我没有找到 AudioSystem 支持的单个 TargetDataLine 我尝试了 getSupportedFormats 方法来检查
  • 编程范式、设计模式和应用程序架构之间的区别?

    我没有编程背景 经常遇到编程范式 设计模式和应用程序架构等术语 虽然我认为我对这些术语的含义有一个模糊的理解 但如果有人能够澄清每个术语是什么 它们与其他术语有何不同以及这些概念如何应用于 Objective C 我将不胜感激 编程范式 类