C02-AD-0103 设计规范(NCV6命名空间规范)-精品文档资料整理.docx
-
资源ID:71025021
资源大小:108.02KB
全文页数:9页
- 资源格式: DOCX
下载积分:15.8金币
快捷下载

会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
C02-AD-0103 设计规范(NCV6命名空间规范)-精品文档资料整理.docx
命名空间规范在V6,我们设计的主体对象都是业务组件。一切都是围绕业务组件出发,设计其实体、服务接口、操作等。关于业务组件的界定:业务组件是界定实体或功能的边界,在V6中严格禁止跨越业务组件边界操作实体,除非这个访问完全与业务组件的业务逻辑没有关系,如一些汇总报表。否则V6平台基于实体的业务权限规则是无法保证的!因此,从模块的角度上看,其命名空间的划分如下图所示:从整个模块的角度看,包是按照业务组件的名字进行组织的。如果业务组件有具体的有意义的名字,则采用这个名字作为业务组件的包名。如果业务组件的名字不好取,则采用m字母作为前缀,后面跟上单据类型的小写作为业务组件的包名。例如:调拨订单:m5x;结算路径:settlepath从整个模块的角度看,会有一个公共的工具包。里面的代码为整个模块所使用。从整个模块的角度看,我们还会使用别的模块的业务组件的服务。例如:运输管理模块中的运输单会调用库存模块的出库单据的回写接口;也会调用采购模块的采购订单的回写接口。引用其他模块的组件服务包名说明nc.bs.模块.ref.模块.业务组件其他模块提供给本模块的服务器端服务组件nc.ui.模块.ref.模块. 业务组件其他模块提供给本模块的UI服务组件红色部分可选PUB工具包包名说明nc.bs.模块.pub服务器端整个模块公共代码工具包nc.ui.模块.pubUI端整个模块公共代码工具包nc.vo.模块.pub跨服务器端、UI端整个模块公共代码工具包从业务组件的角度看,其由各个技术组件组成。在业务组件之下,由于包的划分不同,还会存在不同的技术组件。在技术组件之间,一定要注意不能有循环依赖。例如,我们将服务接口和服务实现组件划分为两个类型的的组件,其目的就是要避免循环依赖1 循环依赖2 打破循环依赖业务组件命名空间的划分如下图所示:1 实体组件:其对应的就是VO类。2 UI组件:既有当前实体的维护界面,也有提给本模块或其他模块别的组件的UI界面(例如转单界面)。一个业务组件可能有多个节点来进行处理,因此它也对应多个业务组件视图。例如:调拨订单有调拨订单的维护节点处理调拨订单的增删改查、审批弃审等操作;调拨订单修订调拨订单审批后的修订处理;调拨订单处理节点调拨订单行状态、整单状态维护。3 服务组件:既有给其他业务组件提供的服务接口,也有对外暴露的公共服务接口(并不是提供给某个特定组件的服务接口)4 服务实现组件:服务组件中接口的实现5 操作组件:业务组件的维护、管理操作接口。例如单据的增删改查。此类接口不能被别的业务组件所调用,只能被业务组件自身的UI技术组件所调用6 操作实现组件: 操作组件中的接口的实现类7 BP组件:为完成一个业务所需要的最小业务动作。它不包含加锁等与业务无关的代码,但是包含完成当前业务所需要的一切业务规则。它为服务实现组件、操作实现组件所调用。但是它不能调用服务实现组件(但是可以调用其他业务实体给本业务实体提供的服务)。BP组件会调用各种业务规则。业务规则可能会被不同的BP所重用。这里给一个默认的规则:新增的规则、删除的规则可以被修改规则所复用,反之则不行。BP组件的例子:调入申请直接推式生成调拨订单、调拨订单可以自制生成。二者都要生成调拨订单,但是调拨订单生成后会回写调入申请,自制的调拨订单保存成功后为了压缩流量,只会将ID、TS以及发生变化的字段传递到前台。综合二者,可以看到只有调拨订单的保存是公用的,这就是一个BP,它里面会组合各种业务规则。例如,它会检查存货是否分配到调出、调入组织;调拨订单的行是否都能匹配到调拨关系等等。,具体命名如下:实体组件包名说明nc.vo.模块.业务组件.entity本业务组件的VO和元数据定义类、以及枚举类型操作组件包名说明nc.itf.模块.业务组件给前台维护界面提供的操作接口操作实现组件包名说明nc.impl.模块.业务组件给前台维护界面提供的操作接口的实现类服务组件包名说明nc.pubitf.模块.业务组件.pub通用服务,任何模块的任何组件都可使用nc.pubitf.模块.业务组件.模块. 业务组件针对某个组件提供的特定服务 红色部分可选服务实现组件包名说明nc. pubimpl.模块. 业务组件.pub通用服务的实现nc. pubimpl.模块. 业务组件.模块. 业务组件特定服务的实现红色部分可选UI组件包名说明nc.ui.模块. 业务组件.组件视图名.editor编辑事件响应类nc.ui.模块. 业务组件. 组件视图名.action按钮事件响应类nc.ui.模块. 业务组件. 组件视图名.view视图nc.ui.模块. 业务组件. 组件视图名.model模型nc.ui.模块. 业务组件.service.模块. 业务组件提供给某个特定组件的UI组件服务红色部分可选如果当前组件只有一个视图,则不需要视图名字这一层BP组件包名说明nc.bs.模块.业务组件Bp的实现类,组合了业务规则以存货核算采购入库单业务组件的代码开发来举例说明:1。实体类:nc.vo.ia.mi2.entity.I2BillHeadVO.java 采购入库单的表头VOnc.vo.ia.mi2.entity.I2BillItemVO.java 采购入库单的表体VOnc.vo.ia.mi2.entity.I2BillVO.java 采购入库单的单据聚合VO2。操作接口类:nc.itf.ia.mi2.II2Maintain.java 菜肉入库单界面的维护操作接口3。服务接口类:nc.pubitf.ia.mi2.ic.IIATo45Sign.java 给库存提供的服务nc.pubitf.ia.mi2.pu.IIAToPUEstimate.java 给采购提供的暂估服务nc.pubitf.ia.mi2.pu.IIAToPUSettle.java 给采购提供的结算服务nc.pubitf.ia.mi2.pub.IBillAPI.java 提供给外系统的采购入库单新增、删除的通用服务4。接口实现类nc.impl.ia.mi2.I2Maintain.java5。服务实现类nc.pubimpl.ia.mi2.ic.IATo45SignService.javanc.pubimpl.ia.mi2.pu.IAToPUEstimateService.javanc.pubimpl.ia.mi2.pu.IAToPUSettleService.javanc.pubimpl.ia.mi2.pub.BillAPIService.java6。BP类nc.bs.ia.mi2.I2DeleteBP.javanc.bs.ia.mi2.I2InsertBP.javanc.bs.ia.mi2.I2UpdateBP.java7。按钮事件响应类nc.ui.ia.mi2.maintain.action.I2AddAction.javanc.ui.ia.mi2.maintain.action.I2QueryAction.javanc.ui.ia.mi2.maintain.action.I2SaveAction.java8。视图nc.ui.ia.mi2.maintain.view.I2BillList.java9。模型nc.ui.ia.mi2.maintain.model.I2Model.javanc.ui.ia.mi2.maintain.model.I2ModelService.java10存货核算模块级别的引用其他模块的组件服务nc.bs.ia.ref.sc委外模块提供给本模块的服务器端服务组件nc.ui.ia.ref.sc委外模块提供给本模块的UI服务组件11存货核算模块级别的PUB工具包nc.bs.ia.pub服务器端整个模块公共代码工具包nc.ui.ia.pubUI端整个模块公共代码工具包nc.vo.ia.pub跨服务器端、UI端整个模块公共代码工具包9 / 9