精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>编程开发>>● Powerbuilder>>PB中使用注册表技术>>[ 各执己见的讨论 ]>>Re: 关于面向对象(5)

主题:Re: 关于面向对象(5)
发信人: edison()
整理人: edison(1999-11-24 07:11:45), 站内信件
哈哈哈,几乎是一模一样。看来 fanpb 老兄不需要我的 Edit Service 了。

我的 Edit Service 和你描述没两样(共享数据源,可以翻页、可以滚动

无须交换数据)。我的传递参数情况只有个别特殊业务规则时采用的。

一般都是用 Edit Service 。

我也和你一样爱使用事件,继承的时候容易操作许多,所以我爱用事件。

我也爱和你一样提供一些空事件,这招我也是跟 PFC 学的。

PFE 的层概念非常 COOL!真的。但是它最大的毛病使得程序的体积整整

扩大了一倍。PFC 是一个非常通用的类库,它有很多功能。但是如果不是

靠出售类库为生的话,还是使用自己编写、单层结构方便一点。正如 fanpb

所说专用性强一点的自己的类库。但是我们不能忽视 PFC,因为 PFC 里

的内容非常丰富。各种编程技巧、面向对象、面向服务、PB 技巧等等。无

一不值得我们学习。所以我仍然鼓励大家多看看 PFC 。

【 在 fanpb (笨笨) 的大作中提到: 】
: 【 在 edison (edison) 的大作中提到: 】
: : 我的天,我们的思路几乎一模一样!太 Cool 了!
: : 我曾说一个 DW 对应一个 Object 。其实我们的意思是一样的,我可
: : 能漏说了。我的 DW 有些是对应一个表、有些是对应多个表。而且我
: : 的 n_om 是继承 DataStore 的。因此,我已将关于各个表之间的完
: :    .......

: 殊途同归,确实太cool了。
:   处理上略有不同之处在于:我们没有用结构或uo传递一条记录。
: 而直接使用PB提供的Sharedata函数。好处是:在Datawindow修改
: 升级时,只要保证grid和freeform的sql一样即可,而无其它烦恼。
: 不需要改结构或uo。而且在卡片窗口里可以滚动、翻页,不需要
: 每次交换数据。

:    我也喜欢标准界面,但用户有时有要求,因此不得加一些button
: 之类。 如“含废品”,“过滤已记帐的”。这样还得重载窗口控件
: 布局函数,很烦。而我们的领导要求我们“体贴”用户,没办法,加吧。

:    在设计功能基类时,预留了大量的事件,其代码往往为return true。
: 这些事件中用于开发重载的。比如保存动作,要触发保存前事件、保存事件、
: 保存后事件。其中任何一个事件返回FALSE算保存失败,ROLLBACK;全成
: 功COMMIT。这样基类就有了另一个用途——程序框架。开发者只要填写
: 事件的script就完成了开发。例如我们规定:
:      保存前:检查权限、能否保存,不准写数据库。
:      保存:datawindow update。
:      保存后:相应修改,如减库存。
:      最后commit,并打印。

:   为什么用事件?其实这些事件都应该是protected 的函数。但我是个
: 实用主义者:在pb中,继承后的对象看不到基类的函数。而且需要手工复制参数

: 等。基类函数修改参数个数和类型后,继承后的对象的函数会变成另一个。
: 而事件好得多:在继承后的对可视化看到,填代码即可。基类参数变化后,
: regerate继承后的对象就对了。

:     有了程序框架,自动生成就容易了。其实说出来我都觉得不好意思,我不
: 懂PFE是怎么做的。我们做法是:从基类派生出一个模板,并按开发规范填好代码

: 和注释。如保存前事件override模式,模板是这样写的:
:     if not  event 基类:aa_beforeupdate(参数)  then
:          return false
:     end if

:     // Your code,由开发时填写商业逻辑代码,如检查权限等。

:     return true
:     剩下的自动生成就是把模板对象的语法取出,按操作输入的参数修改一些变
: 量、
: 名称,最后存到目标PBL中即可。没什么高深之处。
:    
:     悄悄地TO EDISON:能不能把DataWindow Edit Service 发到我的信箱中,可

: 我不能全部发给你我们的类库,因为是这公司版权,而且不准公开。我只能告诉
: 你
: 我们是怎么做的。先谢过了。


--
谢谢没有在 "将本文章寄一份给原作者" 处打勾, 再次感谢!

※ 来源:.网易 BBS bbs.netease.com.[FROM: bbs.szptt.net.cn]

[关闭][返回]