Smalltalk【1】 语言旅游预订系统开发实战
Smalltalk 是一种面向对象的编程语言,以其简洁、优雅和强大的对象模型而闻名。本文将围绕 Smalltalk 语言,展开一次旅游预订系统的开发实战。读者将了解 Smalltalk 的基本语法、面向对象设计以及如何使用 Smalltalk 开发一个简单的旅游预订系统。
Smalltalk 简介
Smalltalk 是由 Alan Kay 和 Dan Ingalls 在 1970 年代初期发明的。它是一种高级编程语言,具有动态类型【2】、垃圾回收【3】和面向对象编程【4】的特性。Smalltalk 的设计哲学强调简单、直观和易于学习。
Smalltalk 开发环境
在开始开发之前,我们需要一个 Smalltalk 开发环境。以下是一些流行的 Smalltalk 开发工具:
- Squeak【5】:一个开源的 Smalltalk 实现,具有图形用户【6】界面和丰富的库。
- Pharo【7】:另一个开源的 Smalltalk 实现,强调社区和模块化。
- VisualWorks【8】:一个商业的 Smalltalk 实现,提供强大的开发工具和社区支持。
本文将使用 Squeak 作为开发环境。
旅游预订系统需求分析
在开始编码之前,我们需要明确旅游预订系统的需求。以下是一些基本的功能需求:
1. 用户注册【9】和登录。
2. 查询旅游产品【10】。
3. 预订旅游产品。
4. 支付【11】和订单管理【12】。
5. 用户信息管理。
系统设计
面向对象设计
Smalltalk 的面向对象设计是其核心特性之一。我们将使用类(Class)来定义系统中的对象,例如用户(User【14】)、旅游产品(TourProduct)和订单(Order)。
类设计
以下是一些关键类的简单定义:
```smalltalk
| User TourProduct Order |
User := Class new
name := 'User'
super := Object【15】
instanceVariableNames【16】 := 'username password email'.
classVariableNames【17】 := ''.
classInstVarNames【18】 := ''.
classInstVarTypes := ''.
classVariableTypes【19】 := ''.
classVariableValues【20】 := ''.
classInstVarValues【21】 := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''.
classVariableValues := ''
Comments NOTHING