一点小感受:界面和程序的分离

本文探讨了Windows桌面程序、Linux程序(包括CUI和GUI)以及Web程序中界面与程序的分离方式。从Windows的Win32 API到Linux的终端协议和XWindow Server,再到Web程序的HTTP协议,分析了各自优缺点,指出在图形密集型程序中交互效率的重要性,同时强调了随着硬件进步,分离设计将成为主流。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 Windows桌面程序,界面和程序是源码级混合

Windows系统下的GUI程序,界面(GUI)与程序其他部分逻辑上是分离的,但是源码上直接交互,界面功能直接通过调用Win32 API来实现。

例:CreateWindow()。
写Windows桌面程序,必须调用GUI32.dll导出的API,无他可选。

甚至线程模型很多功能都和GUI窗口绑定到了一起,如消息队列。

2 Linux程序,界面和程序是通过协议通信

2.1 CUI程序和文本终端通过终端协议交互

对于CUI的程序来说,文本终端是通过标准的终端协议(行行程协议)来提供接口功能的。文本终端和主机完全可以运行在不同架构的机器上,只要彼此都遵守同样的终端通信协议,程序和终端就能完美交互,而不受通信媒介的限制。

正因为如此,才使得SSH等远程终端等方便的远程连接方式很容易被理解和实现。

这种彻底的分离,带来了设计上的完美感。

让每一个程序员都去了解使用终端协议是非常费时(个人认为非常有意义)的事情,而且更可怕的是终端协议并不是只有一个,各终端设备厂家有自己的协议扩展,如VT100。

为了便于使用,人们开发了封装终端协议的函数库。最基本的就是C标准函数库里的printf(),scanf()了。功能更强大的就是著名的curses库了。当我们编写Linux程序使用这些库函数的时候,最好能想到其底下支撑它的终端协议。

2.2 GUI程序和XWindow Server通过X协议交互

与文本终端的概念一脉相承,XWindow提供了图形终端的功能。程序通过标准的X协议与图形终端XWindow Server交互。

图形终端的功能要比文本终端强大的多,也复杂很多,其通信数据量更是大幅增加。这些都导致了X协议的复杂性。所以直接通过X协议来调用GUI功能,显然过

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值