`
civili
  • 浏览: 23876 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

【译】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类的实例。

 

分享到:
评论

相关推荐

    How to use Model-View-Controller (MVC)

    MVC模式不仅适用于Smalltalk-80,还在许多其他编程语言和框架中得到应用,如Java的Spring MVC、Ruby on Rails、ASP.NET MVC等。无论是桌面应用还是Web应用,MVC都是构建用户界面和管理数据流的强大工具。 总结来说...

    基于MVC架构的生产管理系统设计与实现.pdf

    MVC架构最早由Trygve Reenskaug在1978年提出,最初用于Smalltalk语言开发的Smalltalk-80系统。 在MVC架构中,三个核心组件各自承担不同的职责: 1. Model(模型):代表业务数据和业务逻辑。它负责数据的存储、读取...

    Cocoa基本原理指南-中文版

    - **Objective-C语言**:Cocoa主要使用的编程语言是Objective-C,这是一种面向对象的语言,结合了C语言的灵活性与Smalltalk的面向对象特性。 - **设计模式**:Cocoa采用了多种设计模式,如MVC(Model-View-...

    CocoaFundamentals.pdf

    - **语言支持:**Cocoa主要使用Objective-C编程语言进行开发,这是一种面向对象的语言,结合了C语言的灵活性和Smalltalk的面向对象特性。 - **消息传递:**Objective-C采用消息传递的方式进行函数调用,这是Cocoa...

    Objective-C编程全解第三版

    Objective-C编程全解第三版 知识点: 1. Objective-C简介:...这本书适合iOS初学者阅读学习,因此会在上述知识点的阐述中,使用大量的实例和练习来帮助读者理解和掌握Objective-C编程语言和iOS应用开发的相关技能。

    MVC的优缺点

    模型-视图-控制器(MVC)是一种软件设计模式,由 Xerox PARC 在八十年代为编程语言 Smalltalk-80 发明,至今已被广泛使用。MVC 模式的主要优点是强制性地将应用程序的输入、处理和输出分开,使得应用程序更加模块...

    关于设计模式MVC(Model View Controller)模型-视图-控制器

    **MVC 模型-视图-控制器**是一种软件设计模式,起源于1980年代的Xerox PARC为Smalltalk-80编程语言设计的。MVC模式被广泛应用于现代软件开发,特别是在Java、ColdFusion和PHP等平台上。它的主要目标是将应用程序的...

    MVC在Web系统中的模式与应用详解

    MVC(Model-View-Controller)最初是Smalltalk-80环境下用于构建用户界面的一种架构模式。MVC的核心理念在于将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。 - **模型(Model)**:代表...

    是MVC---详解

    **MVC**,全称为**Model-View-Controller**,即**模型-视图-控制器**,是一种经典的软件架构模式,最初由Xerox PARC在20世纪80年代为编程语言Smalltalk-80发明。随着时间的发展,MVC逐渐成为一种广泛接受的设计思想...

    iOS-Recipe-API-Search:基于成分搜索食谱的iOS应用

    首先,该应用是用Objective-C编写的,这是一种面向对象的编程语言,广泛用于开发Apple平台上的软件,包括iOS和Mac OS X。Objective-C在C语言的基础上增加了Smalltalk风格的消息传递机制,使得它具有强大的面向对象...

    ios笔试面试

    - JSON解析:使用NSJSONSerialization进行JSON数据的序列化和反序列化。 - AFNetworking或Alamofire:流行的第三方网络库,简化网络请求操作。 6. **数据持久化**: - CoreData:Apple提供的对象图形管理框架,...

    Inside Smalltalk II.pdf

    Pugh合著,主要围绕Smalltalk环境中的窗口系统展开讨论,涉及窗口创建、管理及模型-视图-控制器(Model-View-Controller, MVC)范式的应用等内容。 ### 知识点一:Smalltalk简介 Smalltalk是一种面向对象的编程...

    VITacademics-Glass-iOS:适用于iOS的官方VITacademics应用

    2. **MVC(Model-View-Controller)架构**:iOS应用开发通常遵循MVC模式,通过观察代码组织,可以了解如何将业务逻辑、视图展示和数据模型分离。 3. **Storyboard与XIB**:iOS应用界面通常由Storyboard或XIB文件...

    Sistema-de-Ventas:产品目录和桌面

    在Smalltalk中,桌面应用的界面可以通过构建视图、模型和控制器(MVC,Model-View-Controller)架构来实现,这是一种设计模式,有助于分离用户界面与业务逻辑。 3. **用户界面**:Smalltalk提供了丰富的图形库,如...

    epic-pet-wars-ios:Epic Pet Wars 的 iOS 客户端 (2009)

    2. **模型-视图-控制器(MVC)**:Objective-C常使用MVC设计模式,它将游戏的数据(模型)、用户界面(视图)和控制逻辑(控制器)分离,使得代码更易于理解和维护。Epic Pet Wars的源码可能会包含多个类来代表游戏...

    struts中文帮助文档

    - **MVC架构**:在90年代早期,ObjectWorks/Smalltalk等编程环境引入了MVC架构。 - **Struts的诞生**:Struts作为一个基于MVC的框架,专门为Web应用开发设计。 - **Struts控制器组件** - **组件介绍**:Struts的...

    sea-d34-iOS:Code Fellows iOS 开发加速器课程库 2015 年 4 月至 6 月

    5. **协议(Protocols)**:掌握协议的定义与实现,如何使用协议进行多态编程,以及代理模式的应用。 6. **集合类**:如NSArray、NSMutableArray、NSDictionary、NSMutableDictionary等,学习如何操作和管理对象...

Global site tag (gtag.js) - Google Analytics