Mozilla命令系统:功能、实现与应用详解
1. 引言
在软件开发领域,尤其是构建复杂应用时,将应用的功能与外观分离是一项至关重要的设计原则。Mozilla的命令系统正是为实现这一目标而设计的,它独立于DOM事件模型,却又与事件存在一定的交互。该系统不仅能够帮助开发者将应用窗口的任务与用户界面分离开来,还能为应用的设计和开发带来诸多便利。
2. 命令系统概述
Mozilla命令系统是平台中一个不太容易被注意到,但却非常强大和灵活的部分。它允许应用程序员将应用功能视为一组消息,每个消息要么是一个命令,要么是关于一个命令的信息。该系统的设计目标主要是支持复杂应用,具体体现在以下几个方面:
- 用户界面小部件可以共享一个命令,即使这些小部件位于不同的源文件中。
- 命令可以拥有自己的状态,并且这些状态可以被更改和报告。
- 命令和小部件可以独立地添加或更改。
- 能够满足各类程序员的需求,而不仅仅是应用程序员。
- 具备有用的默认行为。
- 支持使用简单的语法进行基本操作。
- 尽可能复用现有的DOM事件系统。
在Mozilla中,像保存文件、添加书签、选择内容、加粗文本、滚动一页以及撤销操作等简单操作都是命令。然而,从代码层面来看,命令的实现却比较分散,涉及XUL、JavaScript、XPCOM、现有的chrome文件以及平台内部等多个方面。
3. 命令系统的基本示例
为了更好地理解Mozilla命令系统的工作原理,下面通过两个简单的示例进行说明。