一、计算模式
1.概念:
计算机应用系统中数据与应用的分布方式
2.分类:
(1)单主机计算模式:以单台主机构成的单主机计算模式,又可分为单用户操作系统(用户使用一台计算机)和单主机-多终端的计算模式(用户通过使用终端使用计算机,主机分时轮流为每个终端用户服务)。
(2)分布式客户/服务器计算模式(C/S):每个用户拥有自己的PC机,用户通过计算机网络共享计算机资源。网络中的计算机分为服务器与客户机。
(3)浏览器/服务器计算模式(B/S):每个客户机都必须安装并且正确配置相应的数据库哭护短驱动程序。每个客户机只需安装普遍使用的浏览器,而应用程序相对集中地存放在Web服务器上。
(4)云计算模式:
狭义云计算:通过网络按需、易扩展的方式获得所需的资源(硬件、软件、平台)。提供资源的网络被称为“云”(类似“云空间”“云备份”?)在使用者看来”云“可以无限拓展,随时拓展(要收费~)
广义云计算:通过网络按需、易扩展的方式获得所需的服务。这里就包括一些更为上层的服务(王者荣耀云游戏)
二、架构模式
1.概念:
是软件系统设计的高层抽象策略,用于解决特定场景下的系统组织问题,是在给定上下文中解决软件架构中常见问题的通用、可重用的解决方案。架构模式类似于软件设计模式,但范围更广。(这说的简直不是人话,总而言之就是为了降低模块之间的依赖,避免在添加功能或者修改bug的时候需要重写代码而设计出来的多种逻辑上的结构,类比来讲就是,架构模式是城市的规划方案,而我们的代码是单个建筑的设计)
2.分类:(这里只包括几个我记不太清的架构模式)
(1)分层模式
核心思想:
该模式可用于构建可分解为子任务组的程序,其中每个都处于特定的抽象级别。每一次都向更高层提供服务。
一 般信息系统中最常见的4层划分如下:
Presentation layer 表示层(也就是UI层)
Application layer 应用层(也就是服务层)
Business logic layer 业务逻辑层(也就是领域层)
Data access layer 数据访问层(也就是数据持久层)
业务场景:
-
一般桌面应用程序
-
电子商务Web应用程序
-
传统企业管理系统(ERP)
(2)MVC
核心思想:
该模式将交互式应用分为三个部分,
-
模型——包含核心功能和数据
-
视图——向用户显示信息(可以定义多个视图)
-
控制器——处理用户的输入
这样做是为了将数据的内部表示与用户输入和向用户展示的形式分离开来,这样可以解耦组件,同时也可以进行高效的代码重用。
应用场景:
主流编程语言的互联网应用架构-Web框架,如Spring MVC、Django 和 Rails
(3)MVVM
核心思想:
MVVM模式主要包含三个部分:Model(模型)、View(视图)和ViewModel(视图模型)。
- Model(模型):模型代表的是业务逻辑和数据。它包含了应用程序中用于处理的核心数据对象。模型通常包含业务规则、数据访问和存储逻辑。
- View(视图):视图是用户看到和与之交互的界面。在WPF中,视图通常由XAML定义,并且包含各种用户界面元素,如按钮、文本框、列表等。
- ViewModel(视图模型):视图模型是视图的抽象,它包含视图所需的所有数据和命令。视图模型通过实现
INotifyPropertyChanged
接口和使用ICommand
对象,将视图的状态和行为抽象化,从而实现了视图和模型的解耦。
MVVM模式的主要优点是分离了视图和模型,使得视图和业务逻辑之间的依赖性降低,提高了代码的可维护性和可测试性。此外,通过数据绑定和命令绑定,MVVM模式可以减少大量的样板代码,使得代码更加简洁和易于理解。
应用场景:
适用于WPF(Windows Presentation Foundation)等XAML-based的应用程序开发。
(4)微服务架构
核心思想:
通过将功能分解到各个离散的服务中以实现对解决方案的解耦。把一个大型的单个应用程序和服务拆分为数个甚至数十个的支持微服务,它可扩展单个组件而不是整个的应用程序堆栈,从而满足服务等级协议。围绕业务领域组件来创建应用,这些应用可独立地进行开发、管理和迭代。在分散的组件中使用云架构和平台式部署、管理和服务功能,使产品交付变得更加简单。
应用场景:
适用于业务较为复杂的项目。(这个架构还是不太懂,之后单独开一章总结)
相关资料链接:
企业计算模式 - fantasy12436109 - 博客园
https://blog.youkuaiyun.com/2401_83384536/article/details/136582310