【系统架构师】-第13章-层次式架构设计

层次式体系结构设计是将系统组成一个层次结构,每一层 为上层服务 ,并作为下层客户。
在一些层次系统中,除了一些精心挑选的输出函数外, 内部的层接口只对相邻的层可见
连接件通过决定层间如何交互的协议来定义,拓扑约束包括对相邻层间交互的约束。由于每一层最 多只影响两层,同时只要给相邻层提供相同的接口,允许每层用不同的方法实现,同样为软件重用提供了强大的支持。
关注分离、职责明确

1、表现层

1)MVC模式

1、控制器:接受用户的输入并调用模型和视图去完成用户的需求

2、模型:应用程序的主体部分。模型表示业务数据业务逻辑

3、视图:用户看到并与之交互的界面。视图向用户显示相关的数据,并能接收用户输入的数据。视图可以向模型查询业务状态,但不能 改变模型

优点:

1、允许多种用户界面的扩展,只需改动视图、控制器。无需调整模型

2、易于维护

3、功能强大的用户界面

2、MVP模式

Controller/ Presenter 负责逻辑的处理, Model提供数据, View负责显示

在MVP 中 View并不直接使用 Model, 它们之间的通信 是通过 Presenter来进行的

 3、MVVM模式

为解决MVP 中U I种类变多,接口也会不断增加的问题而提出的

模型-视图-视图模型。

通过DataBinding实现View与 Model之间的双向绑定,其内容包括数据状态处理、数据绑定及数据转换

View和 Model 不能直接通信,两者的通信只能通过ViewModel 来实现。 ViewModel通常要实现一个观察者,当数据发生变化, ViewModel 能够监听到数据的变化,然 后通知对应的视图做自动更新;而当用户操作视图, ViewModel 也能监听到视图的变化,再通 知数据做改动,从而形成数据的双向绑定。

更适用于数据驱动的场景

4、使用XML设计

XML (可扩展标记语言)与 HTML 类似,是一种标记语言。适用于Android、WinForm,灵活的页面配置

主要三部分:

1)界面配置:对用户界面的静态定义

2)界面动态生成

3)界面定制:对用户界面的动态修改过程,软件运行过程中,支持用户动态修改后,保存样式、

5、UIP设计思想

应用程序需要维护一个状态,如状态存储在窗体中,代码需要访问这个窗体以重新恢复状态

类似于后台进程,可以重新唤起页面

1)● User Interface Components: 这个组件就是原来的表现层,用户看到的和进行交互都是这 个组件,它负责获取用户的数据并且返回结果。

2)● User Interface Process Components: 这个组件用于协调用户界面的各部分,使其配合后 台的活动,例如导航和工作流控制,以及状态和视图的管理。用户看不到这一组件,但 是这些组件为User Interface Components提供了重要的支持功能。

 2、中间层

1、业务逻辑层组件设计

业务逻辑组件分为接口和实现类两个部分。接口:定义业务逻辑组件,面向接口编程

2、业务逻辑层工作流设计

业务流程的全部或部分自动化,在此过程中,文档、信息或任务按照一定的过程规则流转,实现组织成员间的协调工作以达到业务的整体目标。

含6个基本模块,分别是工作流执行服务、工作流引擎、流程定义工具、客户端应用、 调用应用和管理监控工具。

1)接口1:过程定义导入/导出接口

2)接口2:客户端应用程序接口

3)接口3:应用程序调用接口

4)接口4:工作流机协作接口。

5)接口5:管理和监视接口

3、业务逻辑层实体设计

以数据为中心的模型到更加面向对象 的表示法。如XML、 通用DataSet、 有类型的 DataSet

通用DataSet对象:

(1)灵活性。 DataSet可以包含数据的集合,能够表示复杂的数据关系。

(2)序列化。在层间传递时, DataSet本身支持序列化。

(3)数据绑定。可以把 DataSet绑定到 ASP.NET应用程序和 Windows 窗体应用程序的任意 用户界面控件。

(4)排序与过滤。可以使用 DataView对象排序和过滤DataSet。 应用程序可以为同一个 DataSet 创建多个DataView对象,以便用不同方式查看数据。

(5)与 XML 的互换性。可以用 XML格式读写 DataSet。

(6)开放式并发。在更新数据时,可以配合使用数据适配器与DataSet 方便地执行开放式 并发检查。

(7)可扩展性。如果修改了数据库架构,则适当情况下数据访问逻辑组件中的方法可以创 建包含修改后的DataTable 和 DataRelation对象的 DataSet。

有类型的DataSet:

包含具有严格类型的方法、 属性和类型定义以公开DataSet中的数据和元数据的类。 

(1)代码易读。要访问有类型的DataSet 中的表和列,可以使用有类型的方法和属性。

(2)有类型的方法和属性的提供使得使用有类型的 DataSet 比使用通用 DataSet更方便。使 用有类型的DataSet时, IntelliSense将可用。

(3)编译时类型检查,无效的表名称和列名称将在编译时而不是在运行时检测。

 4、业务逻辑层框架

业务框架位于系统架构的中间层,是实现系统功能的核心组件。采用业务容器的形式,便于系统功能的开发、代码重用和管理

1)Domain Model 是领域层业务对象,它仅仅包含业务相关的属性

2)Service 是业务过程实现的组成部分,是应用程序的不同功能单元

3)Control 服务控制器,是服务之间的纽带,不同服务之间的切换就是通过它来实现的

4、 数据访问层设计

未完待续......

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/573723.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HelpLook AI ChatBot:自定义Prompts综合指南

AI问答机器人(AI Chatbot)日益在各行业普及,但回答准确率的不足仍是其面临的痛点。用户在与AI问答机器人的互动中常发现,机器人难以完全理解和准确回答复杂问题。HelpLook可以通过自定义提示词(Prompts)和集…

电源电压凹陷是什么?该如何测试电源模块的电压凹陷?

一、电压凹陷 电源电压凹陷是指供电电压有效值在短时间内突然下降到0.1~0.9pu,一般会持续半个周期到几秒钟的时间。一般来说,电压凹陷与电压骤降、电压跌落是同义词,描述的是同一现象。根据电压凹陷持续时间,可分为以下几类&#…

T1 藻类植物 (15分)- 京东前端岗笔试编程题 题解

考试平台: 牛客网 题目类型: 选择题(40分) 3道编程题(60分) 考试时间: 2024-03-23 (两小时) T1 藻类植物 (15分) 题目描述 我们用 x i x_i xi…

Jenkins用户角色权限管理

Jenkins作为一款强大的自动化构建与持续集成工具,用户角色权限管理是其功能体系中不可或缺的一环。有效的权限管理能确保项目的安全稳定,避免敏感信息泄露。 1、安装插件:Role-based Authorization Strategy 系统管理 > 插件管理 > 可…

RGB,深度图,点云和体素的相互转换记录

目录 1.RGBD2Point 1.2 步骤 2.Point2Voxel-Voxelization 2.1 原理 2.2 代码 3.Voxel2Point 4.Point2RGB 5.Voxel2RGB 1.RGBD2Point input:RGB D 内外惨 output:points cloud def depth2pcd(depth_img):"""深度图转点云数据图…

使用yolov9来实现人体姿态识别估计(定位图像或视频中人体的关键部位)教程+代码

yolov9人体姿态识别: 相较于之前的YOLO版本,YOLOv9可能会进一步提升处理速度和精度,特别是在姿态估计场景中,通过改进网络结构、利用更高效的特征提取器以及优化损失函数等手段来提升对复杂人体姿态变化的捕捉能力。由于YOLOv9的…

由浅到深认识Java语言(39):网络编程

该文章Github地址:https://github.com/AntonyCheng/java-notes 在此介绍一下作者开源的SpringBoot项目初始化模板(Github仓库地址:https://github.com/AntonyCheng/spring-boot-init-template & CSDN文章地址:https://blog.c…

OceanBase中NOT EXISTS是否需要被改写

作者简介 张瑞远,曾经从事银行、证券数仓设计、开发、优化类工作,现主要从事电信级IT系统及数据库的规划设计、架构设计、运维实施、运维服务、故障处理、性能优化等工作。 持有Orale OCM,MySQL OCP及国产代表数据库认证。 获得的专业技能与认证包括 Oce…

通知中心架构:打造高效沟通平台,提升信息传递效率

随着信息技术的快速发展,通知中心架构作为一种关键的沟通工具,正逐渐成为各类应用和系统中必不可少的组成部分。本文将深入探讨通知中心架构的意义、设计原则以及在实际场景中的应用。 ### 什么是通知中心架构? 通知中心架构是指通过集中管…

前端学习<二>CSS基础——06-CSS盒模型详解

盒子模型 前言 盒子模型,英文即box model。无论是div、span、还是a都是盒子。 但是,图片、表单元素一律看作是文本,它们并不是盒子。这个很好理解,比如说,一张图片里并不能放东西,它自己就是自己的内容。…

【vue3学习笔记(二)】(第141-143节)初识setup;ref函数_处理基本类型;ref函数_处理对象类型

尚硅谷Vue2.0Vue3.0全套教程丨vuejs从入门到精通 本篇内容对应课程第141-143节 课程 P141节 《初识setup》笔记 1、setup是所有组合式API“表演的舞台”,组件中所用到的所有数据、方法、监视数据、生命周期钩子等都需要配置在setup中。 2、setup的两种返回值&…

JAVA的控制语句

控制语句 分为顺序、选择和循环 顺序结构 先执行a,再执行b 条件判断结构 如果......则....... 循环结构 如果.....则重复执行 条件判断结构(选择结构) if单分支结构 语法结构: if(布尔表达式){ 语句块 } 注&#xff…