搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
2023面试高手
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
Unity Shader Graph简单使用评测_shader graph 源码
2
element-ui table表格在搜索筛选后保持勾选状态不消失_el-table的复选框勾选状态在搜索后消失
3
DevChat智能编程助手:小白也能轻松上手的开发利器_chatdev 官网
4
shell简介_shell是什么语言
5
人工智能之双色球预测系统(指针)_人工智能预测篮号球
6
SpringBoot 监控神器——Actuator 保姆级教程
7
pycharm运行时候出现“ ModuleNotFoundError: No module named ‘pygame’ ”错误的解决方法_modulenotfounderror: no module named 'pygame'file
8
U系银河麒麟防火墙详解_银河麒麟iptables 执行成功
9
R语言数据可视化之数据分布图(直方图、密度曲线、箱线图、等高线、2D密度图)...
10
[蓝桥杯python] 循环小数:已知S是一个小于1的循环小数,请计算与S相等的最简真分数是多少。例如0.333...等于1/3,0.16...等于1/6。_python已知 s 是一个小于 1 的纯循环小数,纯循环小数是从十分位开始循环的小数,如
当前位置:
article
> 正文
燕山大学——软件用户界面设计(五)UI架构_软件布局设计
作者:2023面试高手 | 2024-02-19 02:50:06
赞
踩
软件布局设计
界面设计中的“设计”与“实现”,本节的UI
架构
属于“实现”部分。
1.GUI设计模式(Design patterns for GUIs)
(1)视图树(
View tree
)
①定义:GUI结构是一个视图树。视图是一个对象,显示在屏幕的某个区域,可以是一个控件或者其他元素。
②视图树的使用:
输出:GUI通过改变视图树来改变输出;重绘算法自动重绘受影响的视图
输入:GUI将监听器绑定到视图,来接收键盘和鼠标的输入
布局:自动布局算法通过遍历树来计算视图的位置和大小
③输入处理:
输入处理程序与视图相关联,被称为监听器(
listeners
)、事件处理程序、订阅器、观察器等
(2)监听模式(
Listener Pattern
)
①(上面提到的)GUI输入处理是监听模式的一种
②事件源产生一系列离散事件(例如鼠标事件)
③监听器注册对事件源感兴趣的事件,也可以取消订阅
④当一个事件发生时,事件源将事件分发给所有绑定的监听器
(3)模型视图(
Model-view
)
①目的:分离前后端
输出:由视图树表示
输入:由绑定在视图上的监听器处理
后台(又称模型):保存用户界面正在展示和编辑的数据
②模型-视图-控制器模式(
Model-View-Controller Pattern,简称MVC
)
模型(
Model
)维护应用程序状态
视图(
View
)显示数据
控制器(
Controller
)处理输入
③模型视图的优点
[1]责任分离:一个模块只负责一个功能 模型
Model
-数据 视图
View
-输入输出
[2]解耦(
Decoupling
):视图和模型彼此分离,可以独立修改;模型可以被多个视图复用;多个视图可同时使用同一个模型;视图也可以被其他模型复用
④控制器
(
Controller
)
和视图
(
View
)
很难分离
[1]控制器需要输出:视图必须给控制器提供功能可视性(eg滚动条的拇指)还要对控制器状态的反馈(eg按下的按钮)
[2]控制器和视图共享的情况下谁来管理选择:必须由视图显示;必须由控制器来更新和使用;通常不应当在模型中选择,有些视图需要独立的选择(例如,同一文档上的两个窗口),其他视图需要同步选择(例如,表视图和图表视图)
⑤小部件:紧密耦合的视图和控制器
小部件是一个可重用的视图对象,它同时管理输出和输入,有时被称为组件(Java、Flex)或控件(Windows),例如 滚动条、按钮、菜单条
2.GUI编程方式(
Approaches to GUI programming
)
面向过程的(procedural):代码表示,如何得到你想要的
声明式的(declarative):代码表示,你想得到什么
直接操作(direct manipulation):直接在操作界面创建你想要的(画图)
①标记语言HTML 声明性地指定视图树
②视图树操作JavaScript 循序渐进地改变视图树
③直接操作HTML编辑 AdobeDreamweaver
优点和缺点:
①说明性编程更简洁,程序员只需知道怎么说,不需要知道如何实现
②说明性编程可能更难调试,不能设置断点,不能单步调试,需要更多的试错
③说明性编程的规范使直接操作的创作工具成为可能,因为说明性编程的规范可以通过工具加载并保存,而过程性(程序性)编程不可以
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/2023面试高手/article/detail/112175?site
推荐阅读
article
NSIS
安装包
开发笔记(二):
NSIS
使用
NSIS
+
Qt
界面制作
安装包
流程_
nsis
qt
...
Nsis可以
使用
duilib也可以
使用
qt
界面,笔者主要
qt
,本文章梳理
nsis
+
qt
制作
安装包
的基本流程。_
nsis
...
赞
踩
article
【
Unity
笔记】
ScriptableObject
数据存储
_
unity
scriptableob...
开发平台:
Unity
2019版本以上编程平台:Visual Studio 2017版本以上编程语言:C# 一、什么是S...
赞
踩
article
elementUI
form
表单
验证不
通过
的三个原因...
form :model="
form
" :rules="rules">
form-item prop="...
赞
踩
article
unity
实现
UI
元素
跟随
3D
物体
_
unity
ui
跟随
在
物体
...
unity
实现
UI
元素
跟随
3D
物体
本文实例为大家分享了
unity
实现
UI
元素
跟随
3D
物体
的具体代码,供大家参考,具体内容...
赞
踩
article
CRC8
校验
原理_
crc8
校验
算法原理...
CRC-8
校验
码计算原理_
crc8
校验
算法原理
crc8
校验
算法原理 一、简介 CRC即循环冗余校...
赞
踩
article
解决
svn
diff
中文
乱码_
svn
diff
编码
中文
...
在
中文
Windows系统中,如果一个文本文件是UTF-8
编码
的,那么在CMD.exe命令行窗口(所谓的DOS窗口)中不能...
赞
踩
article
LWRP
光照贴图异常
_
shader
.
warmup
卡死...
这是第168篇UWA技术知识分享的推送。今天我们继续为大家精选了若干和开发、优化相关的问题,建议阅读时间10分钟,认真读...
赞
踩
article
IDEA
插件
开发...
idea这些
插件
都是怎么开发的?本文手把手带你开发。_idea
插件
开发idea
插件
开发 ...
赞
踩
article
威纶通
触摸屏
的
密码
登录画面
制作方法
及宏
指令
实现(
嵌入式
)_
威纶通
刷卡登陆宏
指令
...
如果用户点击了
密码
框,我们可以执行相应的操作,比如显示
密码
输入框被选中的效果,并等待用户输入
密码
。如果用户点击了
密码
框,...
赞
踩
article
[
Python
从零到壹] 一.
为什么
我们要学
Python
及
基础
语法
详解_
为什么
要
学习
python
语法
...
欢迎大家来到“
Python
从零到壹”,在这里我将分享约200篇
Python
系列文章,带大家一起去
学习
和玩耍,看看Pyth...
赞
踩
article
Unity
导出工程到
Android
Studio(export project to
android
...
Unity
导出工程到
Android
Studio(export project to
android
studio
)Un...
赞
踩
article
如何使用
Docker
部署
JSON
Crack
_
json
crack
编译...
上面在本地
Docker
中成功部署了
JSON
Crack
,并局域网访问成功,下面我们在Linux安装Cpolar内网穿...
赞
踩
article
零
基础
如何
系统地
学习
Java
?万字资源...
系统的学
Java
当然要看我们汇总的
学习
路线图了。零
基础
如何
系统地
学习
Java
?万字资源 系统的学...
赞
踩
article
Krpano
教程(二)添加
热点
_
krpano
.
addhotspot
...
一、什么是
热点
热点
就是点击后会跳转到下一个场景,如下,点击之后就进门了二、制作
热点
打开软件安装路径,使用
krpano
T...
赞
踩
article
Python创建
cocos2dx
项目
_
cocos2xd
...
最近为了做一个Android游戏,学习了
cocos2dx
,但是在创建
cocos2dx
项目
上就出现了问题。本来只向在Ecl...
赞
踩
article
vue
使用
krpano
全景图
_
vue
krpano
渲染
全景图
...
准备工作环境:
vue
-cli:4.2.2
krpano
: 1.19安装
vue
-krapanonpm install
vue
...
赞
踩
article
Unity
【
塔防
游戏
】素材+
源码
+配套视频
_
unity
塔防
游戏
源码
...
Unity
3D 是目前主流的
游戏
开发引擎,有数据显示,全球最赚钱的 1000 款手机
游戏
中,有 30% 是使用 Uni...
赞
踩
article
vue
-- 无法打卡
vue
ui创建项目_
depreca
te
request
@^2.67.0 re...
node +
vue
ui_
depreca
te
request
@^2.67.0
request
has
been
dep...
赞
踩
article
unity
文件
路径格式_
Unity
目录
设置...
1. Resource
目录
通过Resources.Load读取,Resources.UnloadAsset卸载。 在里...
赞
踩
article
Generating
Mipmaps
_
generatemipmaps
...
Vulkan Tutorial 阅读记录(机翻)_
generatemipmaps
generatemipmaps
...
赞
踩
相关标签
NSIS安装包制作
nsis+qt
Qt制作安装包
unity
javascript
ui
ViewUI
算法
解决svn diff 中文乱码
intellij-idea
java
idea插件
嵌入式
Python
入门文章
基础语法
Python从零到壹
android studio
gradle
docker
json
容器
学习
开发语言