燕山大学——软件用户界面设计(五)UI架构

article/2025/9/28 23:26:30

             界面设计中的“设计”与“实现”,本节的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

优点和缺点:

①说明性编程更简洁,程序员只需知道怎么说,不需要知道如何实现

②说明性编程可能更难调试,不能设置断点,不能单步调试,需要更多的试错

③说明性编程的规范使直接操作的创作工具成为可能,因为说明性编程的规范可以通过工具加载并保存,而过程性(程序性)编程不可以


http://chatgpt.dhexx.cn/article/q2joKZ83.shtml

相关文章

tkinter 界面设计工具

先推荐一个非tkinter的GUI框架 Python Eel 。是Electron的python版 vb6 https://gitcode.net/mirrors/cdhigh/Visual-Tkinter-for-Python (https://github.com/cdhigh/tkinter-designer ) Figma Tkinter https://blog.csdn.net/qq_41854273/article/details/118310241 visua…

Linux Qt Designer UI界面设计

Linux Qt Designer UI界面设计 设计步骤 设计步骤 1.首先在Qt Designer上绘制好自己的图像化界面。 2.编写代码,将控件和功能匹配起来即可,代码如下。注意换到不同主机时,应该将文件配置到相同文件下下,或者修改相应的路径。 f…

科技感ui界面 html,未来科技感UI界面设计欣赏

来源:uicn 作者:冷云 FUI意思可以是Fantasy User Interface 幻想使用者界面, Fictional User Interfaces 科幻使用者界面,Fake User Interfaces 虚构使用者介面,或是Futuristic User Interfaces 未來使用者界面,不管那個"F…

android studio静态界面设计,2.3 使用Android Studio 简单设计UI界面

首先 创建一个新的项目找到app 文件目录下的layout的 activity_main.xml 因为Android Studio 是可视化的,所有操作都可以在图形界面进行。 该res 界面当中 drawable 可以将需要的图片导入该目录当中进行调用 layout的目录是布局界面 values 当中存有可以更改界面的颜色 字符串…

UI设计开发工具介绍

UI设计开发工具介绍 1 UI设计概念2 UI延申3 工具3.1 文档3.2 信息架构3.3 原型设计3.4 图形处理 4 网站参考 1 UI设计概念 UI设计(或称界面设计)是指对软件的人机交互、操作逻辑、界面美观的整体设计。UI设计分为实体UI和虚拟UI,互联网常用的…

Python QT5设计UI界面教程

简介:PyQT5开发常用知识,零基础上手,需配合我之前写的博文,配置好QT设计工具和ui文件转py文件的工具。博文为:使用Python PyQt5实现一个简单的图像识别软件;页面效果如下: 1.设计菜单栏 Contai…

22个免费的UI界面设计工具、资源及网站

1.原型界面制作工具Lumzy 官方地址:http://www.lumzy.com/ Lumzy是一个网站应用和原型界面制作工具。使用Lumzy,您可以轻松创建UI模型并即时发送到客户电脑中。 Lumzy还具有团队协作编辑工具。 2.在线工具Mockingbird 官方地址:https://gomo…

ui界面设计工具有哪些

大家都知道ui设计的基础就是各种软件,主要的软件有PS、AI、AE、APR这4个,但经过反复论证,在ui设计师从业时间里有80%以上都是跟ps打交道,由前到后的重要性顺序就是按照上面所说的,有的时候也会用到XMind、Cutterman、M…

安卓设计师不容错过的15款实用UI界面设计工具

转载注明出处:https://weibo.com/ttarticle/p/show?id2309404210660820028355 最近刮起了一股“养蛙儿子”的风潮。独特的UI设计、萌萌的画风和简洁的用户体验吸引了大批的用户。在不少人直呼“哇,我的蛙儿子好可爱,好萌”的背后&#xff0c…

android开发界面设计工具,21个免费的UI界面设计工具、资源及网站

我们刚刚介绍了移动设计初探:触屏网页设计。本文将介绍一些UI界面与设计使用的元素、软件和网站。内容很丰富,适合用户体验设计师、界面设计师、产品设计师、JS前段开发、手机产品设计以及iPad和平板电脑产品设计等使用。 Lumzy 官方地址:http://www.lumzy.com/ Lumzy是一个…

10款UI设计师常用的UI设计工具盘点

好的工具自然能让你在设计上如虎添翼,学好UI设计是成为合格的UI设计的第一步。作为一个人。UI设计师要想设计和转让用户满意的作品,不仅需要高超的技能.除了丰富的经验,还需要掌握一些工具。下面小编就为大家介绍一下。UI设计师工作中常用的设…

工具推荐|2019年UI设计师必备工具清单

UI设计师一直是IT行业最热门职位之一,因其薪资待遇较高,学习门槛较低而广受欢迎。在百度指数搜索“UI设计”来看,从2012年开始,UI设计的搜索呈明显上升趋势,尤其是在2016年左右出现“井喷式”增长。 另外,从…

UI设计师必备的五款界面设计工具

在前几篇文章中,我们分享了一些最受欢迎的原型设计工具,今天我们来谈谈界面设计工具。工具的重要性对于设计师来讲不言而喻。任何想法都需要借助工具来实现。想要成为一名出色的UI设计师,你需要多掌握一些技能,才能增强自身竞争力。同时也给那些想转行做UI设计师的朋友一些…

Linux系统里如何彻底的清空终端屏幕?

Linux系统里如何彻底的清空终端屏幕? 本文地址:https://linux.cn/article-2582-1.html 2014-02-19 20:10 评论: 10 收藏: 1 分享: 1 Linux用户,特别是Ubuntu或CentOS用户,基本上都习惯使用clear命令或CtrlL组合快捷键来清…

Linux系统下的清屏方法

在windows的DOS操作界面里面,清屏的命令是cls,那么在linux 里面的清屏命令是什么呢? 下面分享几种在linux下用过的清屏方法: 1、clear命令、这个命令将会刷新屏幕,本质上只是让终端显示页向后翻了一页,如…

linux清理缓存的命令

1.free free&#xff1a;通过free命令查看内存剩余可用情况 命令可带参数&#xff1a; -b  以Byte为单位显示内存使用情况。 -k  以KB为单位显示内存使用情况。 -m  以MB为单位显示内存使用情况。 -g 以GB为单位显示内存使用情况。 -o  不显示缓冲区调节列。 -s<…

Linux常用命令--清屏

那么在linux 里面的清屏命令是什么呢&#xff1f;下面笔者分享几种在linux下用过的清屏方法。 转自&#xff1a;https://www.jianshu.com/p/1aa56138e6aa 1、clear命令、这个命令将会刷新屏幕&#xff0c;本质上只是让终端显示页向后翻了一页&#xff0c;如果向上滚动屏幕还可以…

关于在linux下清屏的几种技巧

在windows的DOS操作界面里面&#xff0c;清屏的命令是cls&#xff0c;那么在linux 里面的清屏命令是什么呢&#xff1f;下面笔者分享几种在linux下用过的清屏方法。 1、clear命令、这个命令将会刷新屏幕&#xff0c;本质上只是让终端显示页向后翻了一页&#xff0c;如果向上滚…

在linux下清屏的几种技巧

转载请注明原文地址&#xff1a;https://www.cnblogs.com/5201351/p/4208277.html 在windows的DOS操作界面里面&#xff0c;清屏的命令是cls&#xff0c;那么在linux 里面的清屏命令是什么呢&#xff1f;下面笔者分享几种在linux下用过的清屏方法。 1、clear命令、这个命令将…

linux下清屏的几种技巧

在windows的DOS操作界面里面&#xff0c;清屏的命令是cls&#xff0c;那么在linux 里面的清屏命令是什么呢&#xff1f;下面笔者分享几种在linux下用过的清屏方法。 1、clear命令、这个命令将会刷新屏幕&#xff0c;本质上只是让终端显示页向后翻了一页&#xff0c;如果向上滚…