NC65代码结构与组件配置详解

需积分: 9 6 下载量 125 浏览量 更新于2024-09-02 收藏 1.92MB DOCX 举报
"NC65学习笔记" 在NC65的学习笔记中,主要涉及的是代码结构规范和组件部署的相关知识。NC65的代码组织遵循一定的模块化原则,以提高代码的可读性和维护性。 首先,代码结构规范强调了按接口编程,这有助于实现松耦合和高内聚的设计目标。具体分为以下几个部分: 1. `nc.itf.<模块>`:这部分包含模块定义的接口,是对外公开的API,供其他模块调用。 2. `nc.impl.<模块>`:这是接口的具体实现,隐藏在内部,不直接对外暴露。 3. `nc.vo<模块>`:表示值对象(Value Object, VO)的实现,用于封装和传递业务数据。 4. `nc.bs.<模块>`:代表普通的后台应用逻辑,处理业务逻辑和数据访问。 5. `nc.ui.<模块>.*`:这部分是客户端代码,通常涉及到用户界面的展示和交互。 代码的存放也按照一定的规则划分区域: - `public`:包含公共接口和公共代码,如VO和公共算法。 - `private`:存放实现细节和其他私有代码。 - `client`:客户端代码,用于与用户交互。 - `gen`:工具生成的EJB目录,通常包含自动生成的服务组件。 - `meta-inf`:模块配置文件目录,用于存放元数据信息。 在组件部署方面,NC65支持通过`XX.upm`文件来部署组件。组件分为两类:公共组件和私有组件。公共组件可以在`public`段部署,私有组件则在`private`段。每个组件都有特定的配置属性,如: - `name`:组件名称,未指定时默认为接口名称或实现类名称。 - `singleton`:默认为单例模式。 - `remote`:默认不允许远程调用,若需要远程服务,需设置为true并提供接口。 - `tx`:事务属性,如NONE、CMT(容器管理事务)和BMT(Bean管理事务)。 - `cluster`:标记组件的集群属性,如NORMAL、SP(单点组件,需要接口)。 私有组件不支持`remote`和`tx`属性,但同样支持其他配置,建议`supportAlias`设为false,以防止不必要的接口查找。 此外,笔记中还提到了NC中的ValueObject(VO)设计。VO是业务数据的载体,通常在系统各层之间传递。在NC中,VO是一个抽象类,实现了`Cloneable`和`Serializable`接口,确保数据的安全复制和跨网络传输。`CircularlyAccessibleValueObject`是VO的一个子类,提供了一种便利的方式来访问和修改自身属性。`SuperVO`作为`CircularlyAccessibleValueObject`的子类,是最常用的VO类型,通常与数据库表一一对应,便于使用JDBCFramework进行数据持久化操作。 在NC的产品设计中,大部分功能以单据形式呈现,单据往往具有主从关系,即一个主表记录对应多个从表记录,这种一对多的业务模型在NC系统中广泛存在。通过这样的设计,NC能够高效地处理复杂的业务场景,并确保数据的一致性和完整性。