在《嵌入软件模式不只为嵌入式系统服务》一书中, Elecia White指出,嵌入式和普通的计算机并不一定要区分开来,因为嵌入式的发展方式是很有用的。
您在本书中谈到了面向物件设计与模块设计。你对这两点有何意见?
怀特:想一想再写作。解决问题或者纠正错误往往很有意思,但我们并不只是在敲打键盘。我们是一个工程师,应该思考一下这个大的架构将会是什么样子。到了这个阶段,就必须要有一个模组。假如你的一个档案有15000个行数,也许会用到这个长度。又或许是为了以后的复用,又或许是为了更好的使用,又或许是为了对它们进行单独的检测。
我非常热衷于模块和面向物件的设计。不能因为没有足够的记忆来使用 Matlab而不能作为一个理由来设计你的思想。
另外一件吸引了我注意的事情是视图-控制者的模式。您能否就这种模型进行探讨,以及我们现在要怎样使用它呢?
White:模型视图控制器已经推出很长时间了。事实上,这种方法可能是第一次被发现并被称为“你要做的事情”的模型,而且这种模型能够使电脑专家与其他人进行交流,谈论如何使用一个具有显示器或者使用者接口的程序。
这就是将展示的一小段分开,也就是一种观点,一种对事物的认识。在视图之后,是一个模式和它和操作者之间的互动。这很简单,不过比起现在每个按键都被强制编写代码的时代来说,它并没有那么大的威力。这并不只是在嵌入式系统中,当你回顾 Windows XP以前,你会看到很多程序都是点击一个按键就能完成,也就是说,你要修改它的外观,就得把所有的程序都写出来。于是, MVC (MVC)就变成了一个非常受欢迎的概念。
就像我们在本书中列举的一名用户所说的那样,“你也明白,这是一件很陈旧的事情,很多人已经不会用这种方法来谈论这个问题了。”MVC非常适合我们,由于很多嵌入的系统都在“按下按键并完成操作”,而这个过程被强行地压缩到一个巨大的按键覆盖面板中。
在嵌入的环境中,很多时间您没有视图,您不与使用者进行互动。我们监测的这些讯息会被直接传送至云中。所以,你为何要选择 MVC呢?我在这本书中谈到了如何使用这个方法作为一种考试。作为真实的视角,或者说,你可以通过使用者或者感应器进行互动,而非从文档中读出。
例如,让一个瞄准位置的系统能够实时地、准确地感知周围的情况。我可以使用自己创造的或是从设计区域和枪械中获得的可以复制的文件来执行代码。当你与物体交谈时,你可以从你的行为中分离出你和物体之间的谈话。
这听上去像是HTML5的服务端,同时也注重了如何利用 JavaScript开发的客户界面,并将您可以用于与服务端的程序进行交流。
White:对,我不清楚他们是否把它叫做模型视图控制器,这是网络浏览器领域中一种很深的传统。但是,当你开始编写 iPad程序时,其实有一个叫做视图的功能。如果你了解 MVC,那么你就能更好地了解 MVC是怎样破坏 iPad的结构的。这是最开始的一种,甚至比四人帮的作品还要更早。这就是你可能从来没有听到的理由。自从那时起,我们就一直在使用,并且我们的发展也超过了这个。