【笔记-软考】层次式架构-表现层框架设计

Author:赵志乾
Date:2024-07-27
Declaration:All Right Reserved!!!

1. 设计模式

        表现层设计模式主要包括MVC、MVP、MVVM三种,用来分离显示部分和业务处理部分(显示部分发生变化的概率更高,分离后可单独演化);

  • MVC(Model-View-Controller):将应用划分出Model、View、Controller三个模块;主要用于Web框架;
  • MVP(Model-View-Presenter):基于MVC演化而来,其核心理念是由Presenter负责所有交互,避免Model和View间直接交互所产生的耦合;主要用于Adroid开发;
  • MVVM(Model-View-ViewModel):基于MVP演化而来,其核心理念是由ViewModel通过事件监听与数据绑定机制,实现Model和View之间的双向绑定;主要用于数据操作比较频繁的场景;

        设计模式的优点:

  • MVC:易于扩展和维护;允许多种用户界面的扩展;功能强大的用户界面;
  • MVP:模型与视图完全分离,可在不影响模型的情况下修改视图;因交互都发生在Presenter内,可更高效地使用模型;可将一个Presenter用于多个视图而无需修改Presenter的逻辑;逻辑放在Presenter中,可以脱离用户接口进行单元测试;
  • MVVM:能够很好解决UI种类多,接口不断增加等问题;

        Model、View、Controller功能说明:

  • Model:应用的主体部分,表示了业务逻辑和业务数据,可为多个视图提供数据;
  • View:用户看到并与之交互的界面,其向用户展示数据并接收用户的输入数据,但并不负责实际的业务处理;View可以向Model查询业务状态,但不能改变Model,View还可以接收Model发出的数据更新事件,从而对界面进行同步更新;
  • Controller:是View与Model的接口,其一方面接收来自View的输入,并将其解释成系统可理解的对象,同时识别用户动作,将其解释为对Model特定方法的调用;另一方面,其能够处理来自Model的事件和Model逻辑执行的结果,调用适当的视图为用户提供反馈;

2. UIP设计思想

        UIP(User Interface Process)将表现层划分为UIC(User Interface Components)和UIPC(User Interface Process Components)两个子层,其中UIC负责用户数据获取和结果返回,而UIPC用于协调界面的各个部分,使其配合后台的活动;

3. 界面管理技术

        界面管理技术主要包括界面配置、界面定制、界面动态生成三部分;

  • 界面配置:是对用户界面的静态定义,通过读取配置文件的初始值对界面进行配置;
  • 界面定制:运行过程中,用户可按需和使用习惯,对页面元素的属性进行修改,并将这些修改持久化下来;
  • 界面动态生成:在运行时,系统通过DOM API读取界面配置信息并结合用户的定制信息,动态生成界面;

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

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

相关文章

LeetCode209 长度最小的子数组

前言 题目: 209.长度最小的子数组 文档: 代码随想录——长度最小的子数组 编程语言: C 解题状态: 没有思路,暴力解法都没思路… 思路 注意,子数组指的是连续子数组,不然本题就没有意义了。 代…

全网最详细!! Linux 安装、配置教程

一、下载安装包 首先去官网下载VMware最新版本,以及发行版CentOS -7,懒得下载的可以私信我,我给你发包 其中,CentOS(Community Enterprise Operating System)是一个基于Linux的开源操作系统,它是…

【日常记录-Docker】容器退出机制

Author:赵志乾 Date:2024-07-25 Declaration:All Right Reserved!!! 1. 简介 Docker容器退出机制是指容器停止运行并退出的一系列行为与规则,其决定了容器何时以及如何停止运行。了解并掌握容器…

华为OD机试 - 停车场车辆统计 - 贪心算法(Java 2024 D卷 200分)

华为OD机试 2024D卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试(JAVA)真题(D卷C卷A卷B卷)》。 刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华…

小米8 刷 澎湃OS 面具 插件优化调度教程

参考:文档: https://topjohnwu.github.io/Magisk/ 官方地址: https://github.com/topjohnwu/Magisk/releases lsposed: https://github.com/LSPosed/LSPosed Shamiko: https://github.com/LSPosed/LSPosed.github.io/releases 小米8 移植版 澎湃OS1.0.2 MI8_Dippe…

微服务注册中心

目录 1.微服务的注册中心 1.1 注册中⼼的主要作⽤ 1.2 常⻅的注册中⼼ 2.nacos简介 2.1 nacos实战⼊⻔ 2.2.1 搭建nacos环境 2.2.2 将商品微服务注册到nacos 3.服务调⽤Ribbon⼊⻔ 3.1 Ribbon概述 3.1.1 什么是Ribbon 3.1.2 Ribbon的主要作⽤ 3.2.2 ⼯程改造 4.服务…

TIM定时器输入捕获

TIM定时器输入捕获 文章目录 TIM定时器输入捕获1. 输入捕获1. 输入捕获的工作原理2. 输入捕获的应用场景 2.输入捕获配置流程测量频率和占空比的函数 1. 输入捕获 输入捕获是STM32定时器的一项重要功能,它允许微控制器捕捉外部信号的变化(通常是边沿变化…

多区域DNS以及主从DNS的搭建

搭建多域dns服务器: 搭建DNS多区域功能(Multi-Zone DNS)主要是为了满足复杂网络环境下的多样化需求,提高DNS服务的灵活性、可扩展性和可靠性。 适应不同网络环境: 在大型组织、跨国公司或跨地域服务中,网…

大模型学习笔记 - LLM指令微调

LLM 指令微调 LLM 指令微调 0. 概览1. 指令数据的构建 1.1 基于现有NLP任务数据集构建1.2 基于日常对话数据构建1.3 基于合成数据构建1.4 指令数据构建的提升方法 2. 指令微调的策略 2.1 优化设置2.2 数据组织策略 3. 参数高效的模型微调 3.1 低秩适配微调方法3.2 其他高效微调…

使用flutter做圆形进度条 (桌面端)

前言 最近收到一个需求,需要使用flutter 来做一个圆形进度条,这可难倒我了,毕竟我是做前端的,flutter 之前接触的也少,但没办法,既然需求有了,也得硬着头皮上了,先来看看做的效果。…

Angular 18.2.0 的新功能增强和创新

一.Angular 增强功能 Angular 是一个以支持开发强大的 Web 应用程序而闻名的平台,最近发布了 18.2.0 版本。此更新带来了许多新功能和改进,进一步增强了其功能和开发人员体验。在本文中,我们将深入探讨 Angular 18.2.0 为开发人员社区提供的…

C语言-TCP通信创建流程

TCP通信创建流程 1. 客户端创建TCP连接 在整个流程中, 主要涉及以下⼏个接⼝socket() : 创建套接字, 使⽤的套接字类型为流式套接字connect() : 连接服务器send() : 数据发送recv() : 数据接收创建套接字 首先,我们需要创建套接字,套接字是通信的基础…

构建查询洞察 UI

本文字数:2631;估计阅读时间:7 分钟 作者:Bucky Schwarz 本文在公众号【ClickHouseInc】首发 我们最近发布了 Query Insights 的初步实现,为 ClickHouse Cloud 用户提供了一种便捷的方法来查看和解释查询日志。该功能对…

MySQL索引、事务(数据库管理与高可用)

一、索引的概念 索引:排序的列表,对数据进行快速的查询; 针对不同的产品需求,或者不同的数据库结构,会创建不同的索引; 1:普通索引(默认索引) 2:唯一索引…

ubuntu开启 远程登录 允许root远程登录

如果没有22端口服务 sudo apt update sudo apt install openssh-server sudo ufw allow.ssh sudo passwd root 修改配置文件 sudo vim /etc/ssh/sshd_config Port 22 修改为 Port 22 #PermitRootLogin prohibit-password 修改为 PermitRootLogin yes service ssh restart …

推荐一个酷炫高逼格的服务器探针的监控工具,免费开源(附源码)

背景 作为一名攻城狮,面对各种服务器内存飙高、CPU猛增、磁盘打满等等服务器问题,可谓是伤透了我们的心。 不仅要开发,还要处理这些问题,大把的时间浪费了,这时候一个好的全面的监控工具尤为重要了。 所以&#xff…

C++基础知识:函数重载相关注意事项:1.引用作为重载条件,2.2.函数重载遇见函数默认参数。

1.引用作为重载条件 #include<iostream>using namespace std;//1.引用作为重载的条件 //int 和 const int 类型不同&#xff0c;所以可以作用重载条件 void fn(int &a) //int &a10;不合法 //10放在了常量区&#xff0c;而引用要么在栈区&#xff0c;要么在堆区{…

Unity打包设置

1.Resolution and Presentation (分辨率和显示) Fullscreen Window (全屏窗口): 应用程序将以全屏窗口模式运行&#xff0c;但不会独占屏幕。适用于想要全屏显示但仍需访问其他窗口的情况。 Resizable Window (可调整大小的窗口): 允许用户调整应用程序窗口的大小。适用于窗口…

保险丝(常见元器件及电路基础知识)

分类&#xff1a;简单分为熔断式和非熔断式 电压&#xff1a;保险丝的额定电压是指它的公称额定电压, 通常就是保险丝断开后能够承受的最大电压值保险丝通电时两端所承受的电压大大小于其额定电压&#xff0c;因此额定电压基本上无关紧要。 电流&#xff1a; PFC为功率因数矫…

昇思25天学习打卡营第三十四天|Jack578

昇思25天学习打卡营第三十四天|Jack578 一、数据集Dataset&#xff08;一&#xff09;数据集加载&#xff08;二&#xff09;数据集迭代&#xff08;三&#xff09;数据集常用操作 一、数据集Dataset 数据是深度学习的基础&#xff0c;MindSpore提供基于Pipeline的数据引擎&am…