但是,从可扩展性的角度来看,大连保险公司早会管理软件设计才刚刚开始。事实上,前面的工作只是为软件系统植入了一个可扩展功能的基因。这个基因是否可以产生真正符合要求的活体,还需要做不少工作。
下面,我列出了一些思考的内容。这些思考内容都比较具体,有特定的上下文,例如,语言、工具等,仅供读者参考。
每个组件是一个Java项目,项目以该组件的根包名命名。
每个组件的interfaces包中定义了该组件对外提供的服务。
每个组件的internal包是组件功能的内部实现。内部实现分为core和ext两个部分,core的部分通常较为稳定,而ext的部分通常用于系统的二次开发。
接口类的命名为ICheck(检查功能)、IInfo(获取信息功能)、IEntry(对象模型数据的简单更新功能)、IOperation(复杂的业务逻辑服务)。
对外提供的服务(即接口类)的控制级别是一级,需要一定的工作流程来审批和实施。
致远服软认为:http://www.soft8.com.cn/core包是组件功能内部实现中较为稳定的部分,core包分为interfaces、impl、util三个部分。interfaces包中的接口是系统二次开发需要了解的主要内容;util包提供一些与业务无关的类;impl包提供了支持接口的工厂类及对二次开发透明的缺省实现。总体来说,util、interfaces和impl包中的工厂类是面向二次开发的API。这部分的控制级别是二级,在对已有二次开发内容的基础上进行再次更新的时候,需要一定的工作流程来审批和实施。在通常情况下,二次开发不会对core进行任何修改,在二次开发大连保险公司早会管理软件结束后,统一对core进行版本的升级。
每个组件都包含统一的扩展模式。在ext目录中包含ext.xml配置文件,用来将客户化的实现注册到core的工厂中。
根据以上的思考,我们轻松地建立了组件化开发的大连保险公司早会管理软件代码结构。事实上,还有一些进行功能扩展时的约束。
组件的代码结构是什么样子的呢?请看图9-1。
为了满足高内聚性、低耦合性的要求,这个组件只能依赖于静态领域模型,而不能依赖于其他组件(除第三方组件外)。该组件与其他大连保险公司早会管理软件的关系只会发生在工作流引擎中。我把这一点作为后续设计和实现的原则。
接下来的事情很简单、也尤为重要,那就是坚持自己确定的原则。如果坚持原则,一年之后,当大连供应商关系 管理软件系统进入维护期时,你将会从中受益。反之,前面的努力几乎是无用功。
组件化开发的案例就介绍到这里。