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

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

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值