【译】Smalltalk-80应用编程:如何使用MVC

Smalltalk-80应用程序设计:如何使用MVC

 

 Steve Burbeck博士

 

 

 

Copyright (c) 1987, 1992 by S. Burbeck
permission to copy for educational or non-commercial purposes is here by granted  

(TM)Smalltalk-80 is a trademark of ParcPlace Systems, Inc.

 

          介绍

 

施乐 (Xerox) 帕克 (PARC) 实验室对编程的贡献之一是发布了多窗口高交互Smalltalk-80界面。 这种类型的界面随即被Apple Lisa和Macintosh借鉴,进而,被它们的模仿者借鉴。这样的界面中,输入来自鼠标,输出是图形和文本的恰当组合。隐藏在Smalltalk-80用户界面后的中心概念是模型-视图-控制器(MVC)范型。它很优雅和简单,并且和传统的应用程序完全不同。因为这是一个全新的概念,所以需要一些解释——一些在出版的Smalltalk-80参考中不容易得到的解释。

 

如果你在类Pen中运行画图例子,你可能很惊讶为什么应用程序直接画在屏幕上,而不是在像浏览器,工作间这样的窗口里, 或者你熟悉的脚本。

 

          基本概念

 

在MVC范型中,用户输入,外部世界模型和对用户的可视化反馈被分离给三种不同类型的对象处理。每一种对象被设计得特别适合它们的任务。视图(view)把图形和/或文本输出到位图显示器中被分配给应用程序的那部分。控制器解释来自用户的鼠标和键盘输入,命令模型和/或视图做恰当的改变。最后,模型管理应用领域的行为和数据,响应对它状态的请求(通常来自视图),还响应改变它状态的指令(通常来自控制器)。形式化的分离这三种任务是一个重要的观念,并且特别适合Smalltalk-80,在那里,基本的行为能被包含进抽象的对象中:视图(View),控制器(Controller),模型(Model)和对象(Object).MVC的行为能被继承,添加,修改当需要提供灵活和强大的系统时。

 

       MVC三元组间的通信

 

 

       视图

视图/子视图层次

 

显示视图

 

现存视图

 

现存视图层级

 

 

 

       控制器

 

控制器之间的通信

 

进入和跳出控制流

 

鼠标菜单控制器(The MouseMenuController)

 

段落编辑器(ParagraphEditor)

 

屏幕控制器(ScreenController)

 

 

       MVC检查器

 

 因为MVC三元组如此重要,所以Smalltalk-80提供了一个定制的检查器----一个MVC检查器。一次检查三个对象。

 

       附录A

       控制流细节

 

    位于顶层试图的所有控制器之上的是ScheduledControllers。关联到当前对象的ControlManager类的实例。

 

你可能感兴趣的:(smalltalk)