Unix环境下的用户接口设计模式

在Unix接口设计的传统中,涉足两个主题。一个与其他程序通讯方式的前瞻性设计;另一个是最小立异原则

最小立异原则

最小立异原则:“少来标新立异”是所有设计中的通用原则,且并非仅局限于软件设计。
如果有可能,尽量允许用户将接口功能委派给熟悉的程序来完成。
不能委派,那就效仿。目的减少用户在使用时必须学习的复杂过程。

接口设计评估

简洁、表现力、易用、透明和脚本化能力。 能自动完成重复的任务

Unix接口设计模式

1.过滤器模式

过滤器程序接受标准输入的数据,转换成某种格式后,再将结果发送到标准输出端。过滤器不是交互的,也许会查询启动环境,并且通常由命令行选项控制,但是并不要求用户在输入流中输入命令或给出反馈。
例子grep(1)

定义过滤器的原则


  • 牢记Postel原则:宽进严出。
  • 过滤时,不需要的信息也决不丢弃。
  • 在过滤时,绝不增加无用数据。

2.Cantrip模式

没有输入,没有输出,只被调用一次,产生退出状态数值。程序只能由启动条件控制,程序非常具有脚本能力。
例子clear(1)

3.源模式

类似过滤器程序,不需要输入,它的输出只能在启动条件中控制。
例子ls(1)、ps(1)、who(1)

4.接收器模式

类似过滤器程序,只接纳标准输入而不发送任何东西到标准输出。它对输入端数据的作用行为只能在启动条件中控制。(这种用的比较少) 例子mail(1)

5.编译器模式

类似编译器程序既无标准输出也无标准输入,它们会将错误信息发送到标准错误端。

6.ed模式

最简单的交互设计模式
例子gdb(1)

7.Roguelike模式

一种游戏发展而来的模式
例子vi

8.“引擎和接口分离”模式

MVC模式

9.CLI服务器模式

类似PHP

10.基于语言的接口模式

配置(微语言)模式

多价程序模式

多价程序(polyvalent,多角色程序)特征


  • 程序的应用定义域逻辑封存在一个文档化的API库中,该库可被其它程序链接。程序同外部的接口逻辑是一个基于库的薄胶合层。或者有几个不同风格的UI层,每一个层都可以链接该库。
  • 一种UI方式是cantrip,类似编译器或以批处理方式执行交互命令的CLI模式。
  • 一种UI方式是GUI,可直接链接到核心库,或者作为一个独立进程来驱动CLI接口。
  • 一种UI方式是脚本接口,使用现代的通用脚本语言,如Perl、Python或Tcl。
  • 额外可选的一种UI方式是使用curses(3)的roguelike式接口。




上一页  Unix编程艺术(五)

下一页  Unix编程艺术(七)