PB 代码的架构模型

1. 基类层 base.pbl

说明:所有代码的基础。

继承原则:必须由标准对象派生而来。

windows -> w_base

menu -> m_base

datastore -> n_ds_base

datawindow -> u_dw_base

......

引用原则:不可引用除全局对象以外的任何对象。

 

为了实现 PB 自身难以完成的任务,特别增加了一个全局对象 nonvisualobject n_global_base 存放所有全局变量和全局函数。

因为 datastore 与 datawindow 的特殊性,u_dw_base 实际上是封装了 n_ds_base 的功能,并在此基础上增加了与数据表现有关的功能,这也是继承了 PB 本身的设计思路。

2. 通用层 general.pbl

说明:能够通用于任何应用。

继承原则:除全局函数外,其它类型的对象必须继承自基类层。对象中的参数类型除基本数据类型外,其它数据类型必须使用基类层定义的对象。

引用原则:可引用本层及上层对象。


3. 模块层(实现特定功能的若干对象组合;如打印、查询、工具栏、自动缩放、权限...)

说明:与通用层一致。

继承原则:与通用层一致。

引用原则:仅可引用上层对象。


4. 祖先层 ANCESTOR.pbl

说明:与基类层类似,但范围限制在本应用之内,并不通用于其它应用。

继承原则:与通用层类似,但祖先菜单不一定是一个,而是根据实际需要决定。

u_dw_base -> u_dw_ancestor

m_base -> m_wnd_word_ancestor

m_base -> m_wnd_xls_ancestor

m_base -> m_pop_ancestor

w_base -> w_ancestor

......

引用原则:仅可引用上层对象。

原则上本层没有全局函数,且只继承可视的基类对象。


5. 框架层

说明:实现特定业务模型的所有框架性对象,可通用于相同业务模型的应用。

FRAME_D.pbl

FRAME_B.pbl(实现不可视的且与业务相关的所有代码及 n_global)

FRAME_O.pbl(其它各种杂七杂八的对象)

FRAME_M.pbl

FRAME_W.pbl

继承原则:除全局函数外,其它类型的对象必须继承自祖先层。对象中的参数类型除基本数据类型外,其它数据类型必须使用祖先层定义的对象。

n_global_base -> n_global(此对象是应用的唯一全局变量)

引用原则:与通用层一致。

实现时必须注意区别不同类型的应用(如 pbnative 或 pbwebservice)


6. 集成系统层

说明:按集成系统类型划分的各类对象,可不断扩展。

PDM_D.pbl

PDM_OP.pbl(实现不可视的且与 pdm 业务相关的所有代码)

PDM_M.pbl

PDM_W.pbl

CAPP_D.pbl

CAPP_OP.pbl(实现不可视的且与 capp 业务相关的所有代码)

CAPP_M.pbl

CAPP.W.pbl

MES_D.pbl

MES_OP.pbl(实现不可视的且与 mes 业务相关的所有代码)

MES_M.pbl

MES_W.pbl

继承原则:对象中的参数类型除基本数据类型外,其它数据类型必须使用祖先层定义的对象。

引用原则:可引用本系统内及上层对象。


7. webService 层 WEBSERVICE.pbl

说明:定义并实现所有 ws 接口,屏蔽业务知识,具体实现完全依赖上层。

继承原则:WS 直接使用 nonvisualobject。对象中的参数类型除基本数据类型外,其它数据类型必须使用基类层定义的对象。

引用原则:与通用层一致。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值