Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Design patterns 什么';设计模式和架构模式之间的区别是什么?_Design Patterns_Architecture - Fatal编程技术网

Design patterns 什么';设计模式和架构模式之间的区别是什么?

Design patterns 什么';设计模式和架构模式之间的区别是什么?,design-patterns,architecture,Design Patterns,Architecture,当我们在互联网上阅读设计模式时,我们注意到有三类: 创造性的 结构的 行为的 但是当我们创建软件架构时,我们会考虑MVP、MVC或MVVM 例如,在创作模式中,我发现了singleton模式,但我也在我的MPV中使用了singleton 所以我的问题是:设计模式是产品的整体结构吗 如果是,那么singleton如何成为一种设计模式?因为我可以在我的应用程序的任何地方使用它。基本上,它只限于在内存中一次创建一个实例,但这个概念不定义软件的设计方式吗 如果没有,那么MVP、MVC和MVVM在三

当我们在互联网上阅读设计模式时,我们注意到有三类:

  • 创造性的
  • 结构的
  • 行为的
但是当我们创建软件架构时,我们会考虑MVP、MVC或MVVM

例如,在创作模式中,我发现了singleton模式,但我也在我的MPV中使用了singleton

所以我的问题是:设计模式是产品的整体结构吗

  • 如果是,那么singleton如何成为一种设计模式?因为我可以在我的应用程序的任何地方使用它。基本上,它只限于在内存中一次创建一个实例,但这个概念不定义软件的设计方式吗

  • 如果没有,那么MVP、MVC和MVVM在三类模式中的位置在哪里?软件的设计和架构有什么区别


    • 嗯,主要是语言问题。根据我的经验,就软件而言,设计和建筑之间的界限是一条宽阔的河流,其宽度由水位决定,而水位又主要受销售季节的影响。通常,术语“设计”与最终用户认可的软件产品行为的一个重要方面一起使用,而“架构”代表软件的技术结构,即。E组件、库、协议以及实现设计所需的任何内容。“设计模式”有两个作用:第一,它们被视为解决一类(或多或少)标准问题的最佳实践,而不是产品;第二,他们帮助开发者进行沟通。以您的单例为例,它允许我们通过使用这个词而不是每次解释来了解机制是什么,我们通过使用指定的数据空间(变量或任何东西)创建了一个单例,该数据空间以受控方式设置,并保证是唯一的,因为我们保护了类的构造函数等,所以我想你的问题的简短答案是:这取决于谁在说话。这有什么意义吗?

      这需要详细的解释,但我将尽我所知,尝试勾勒出不同之处

      模式是您在程序中发现的抽象共性。它允许我们解构大型复杂结构,并使用简单的部件进行构建。它为一类问题提供了一个通用的解决方案

      大型复杂软件在不同层次上经历了一系列的解构。在很大程度上,架构模式是工具。在较小的层次上,设计模式是工具,在实现层次上,编程范例是工具

      模式可能发生在非常不同的级别。看见快速排序、合并排序都是按顺序组织一组元素的算法模式

      对于最简单的观点:

      • 编程范例-特定于编程语言
      • 设计模式-解决软件构建中反复出现的问题
      • 体系结构模式-软件系统的基本结构组织
      习惯用法是特定于范例和特定于语言的编程技术,用于填充低级细节

      设计模式通常与代码级共性相关联。它为细化和构建更小的子系统提供了各种方案。它通常受编程语言的影响。一些图案由于颜色的变化而变得不重要。 设计模式是一种中等规模的策略,它充实了实体及其关系的一些结构和行为

      架构模式
      被视为比设计模式更高层次的共性。 体系结构模式是涉及大规模组件、系统的全局属性和机制的高级策略

      如何获得模式? 通过:

    • 重复使用
    • 分类
    • 最后是抽象,提炼出共性 如果你遵循了上面的想法。您将看到,Singleton是一种“设计模式”,而MVC是处理关注点分离的“体系结构”模式之一

      尝试阅读以下内容:


    • 设计模式是众所周知的解决技术问题的模式,这种方式已经被多次证明。 设计模式是用于创建可重用的面向对象软件的常见设计结构和实践。设计模式示例有工厂模式、单例模式、外观模式、状态模式等。设计模式可用于解决整个应用程序中的较小问题,并且比整个体系结构更易于注入、更改和添加

      架构模式是解决软件应用程序架构问题的众所周知的模式。软件应用程序体系结构是定义满足所有技术和操作需求的结构化解决方案的过程。
      应用程序的体系结构是代码的总体“组织”。不同体系结构的示例可能是MVC、MVVM、MVP、n层(即UI-BLL-DAL)等。体系结构通常需要提前确定,并且在构建应用程序后通常很难更改。

      体系结构元素倾向于类或模块的集合,通常以方框表示。关于体系结构的图表示向下看的最高层次,而类图则表示最原子层次。架构模式的目的是了解系统的主要部分如何组合在一起,消息和数据如何在系统中流动,以及其他结构问题。 体系结构模式利用各种组件类型,每个组件类型通常由连续较小的模块组成。
      How to instantiate an object when we only know what type needs to be instantiated at run time (maybe a Factory Class?)
      How to make an object behave differently according to its state (maybe a state machine, or a Strategy Pattern?)