WEB开发网
开发学院软件开发Java 轻量级开发的成功秘诀,第 8 部分: Seaside 阅读

轻量级开发的成功秘诀,第 8 部分: Seaside

 2009-11-11 00:00:00 来源:WEB开发网   
核心提示: 图 3. Multi 应用程序中的三个方法Seaside 结构在 Seaside 中,每个组件必须处理它自己的状态、动作和视图,轻量级开发的成功秘诀,第 8 部分: Seaside(6),就像在 Java 语言中一样,Squeak 对象包含了大多数业务逻辑,我希望您有机会尝试其中的一些技术,您的


图 3. Multi 应用程序中的三个方法
轻量级开发的成功秘诀,第 8 部分: Seaside

Seaside 结构

在 Seaside 中,每个组件必须处理它自己的状态、动作和视图。就像在 Java 语言中一样,Squeak 对象包含了大多数业务逻辑,而且 Seaside 在组件实例变量中保存了若干表示特有的状态。

到目前为止,您只看到了简单的任务。Seaside 也提供用于创建更复杂代码的任务。返回到代码浏览器(如果它不在活动状态,转到一个例子;单击 Toggle Halos 链接,单击三张图片的第一张)。现在,使用代码浏览器。在第一个列表中,选择 Seaside-Examples-Store 模块,从第二个列表中选择 WAStoreTask 类,从第四个列表中选择 Go 方法。这个 Seaside 任务处理购物车结帐。您会看到代码:

go 
 | shipping billing creditCard | 
 cart _ WAStoreCart new. 
 self isolate: 
 [[self fillCart. 
 self confirmContentsOfCart] 
  whileFalse]. 
 self isolate: 
 [shipping _ self getShippingAddress. 
 billing _ (self useAsBillingAddress: shipping) 
   ifFalse: [self getBillingAddress] 
   ifTrue: [shipping]. 
 creditCard _ self getPaymentInfo. 
 self shipTo: shipping billTo: billing payWith: creditCard]. 
 self displayConfirmation. 

isolate 方法允许隔离一个事务。注意那三个代码块。第一个块完成一些初始化工作,然后检索购物车的目录,并请求用户确认目录。第二个块检索发货地址和帐单地址以及信用卡信息,然后邮寄帐单。第三个块显示确认消息。可以把任务看作控制器。

注意,这里缺少状态管理。不需要把应用程序状态保存到会话或在做完的时候恢复。能够查看整个应用程序,而不是编写许多小的请求。框架以 continuation 的形式为您处理所有的状态 —— 一个非常强大的概念。

最后,Seaside 在简单老式的 Squeak 对象中处理模型。通过在第一个列表中选择 Seaside > Examples > Store > Model 模块,可以看到这个应用程序的模型。会看到许多类,代表主要的存储模型。这没有什么特别的地方 —— 因为保存应用程序状态的代码和几个业务方法与视图无关。您得到的只是纯对象,也应该如此。

Seaside 的力量

在 Seaside 中,您获得了难以置信的调试和管理工具。框架处理链接、HTML 的显示细节、状态和一些难题,比如 Back 按钮。我希望这个系列的文章能向您展示一些在 Java 语言中和 Java 语言之外进行轻量级开发的策略。在我的 Beyond Java 一书和我先前的书(特别是 Better, Faster, Lighter Java 一书)中,您能够读到更多相关的内容。我希望您有机会尝试其中的一些技术,您的朋友将会认为它们奇怪而又美妙,就像 Ocoee 河上的皮划艇爱好者那样。

上一页  1 2 3 4 5 6 

Tags:轻量级 开发 成功

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接