在进行Java项目设计与开发的过程中,为了方便项目的组织与管理、避免命名的冲突,分包是非常有必要的,也是行之有效的解决方法。
在一个实际的项目中,如何进行包的划分呢?我们通常采用如下规则:项目所属组织名(公司或单位的网址域名)的逆序形式+项目名+模块名。对于不同的模块,采用分层的思想进一步分包,第一层按照三层架构(数据层、逻辑层、表示层)划分,接下来针对不同的架构层采用层内去划分。
为了理解与应用这些规则,让我们来看一个项目。项目简洁描述:深圳大学(www.szu.edu.cn)需要利用Java开发一个简单的图书进销存管理系统。通过需求分析后,该系统包括5个模块,分别是用户管理(user)、图书管理(book)、进货管理(in)、销售管理(out)和库存管理(stock)。根据分包规则,划分:cn.edu.szu.jxc.user;cn.edu.szu.jxc.book;cn.edu.szu.jxc.in;cn.edu.szu.jxc.out;cn.edu.szu.jxc.stock。对于不同的模块,我们利用分层的思想分包,现已用户管理模块为例,其它模块类似。第一层遵循三层架构,分别表示为dao(数据接入对象)、bussiness、ui(用户界面),为了方便数据的封装与交换,采用值对象设计模式,该层还设有vo。那么该模块此时的包结构分别表示如下:cn.edu.szu.jxc.user.dao;cn.edu.szu.jxc.user.bussiness;cn.edu.szu.jxc.user.ui;cn.edu.szu.jxc.user.vo。对于数据层和逻辑层,在充分考虑面向接口编程的原则下,划分为ado、impl、factory,而逻辑层可以进一步划分为ebo、ebi、factory。以上是该项目的分包策略,为了更加有效快捷地分包,可以先根据上述明细分包规则构造一个样本(sample)模块,再利用sample模产生具体的模块(复制后修改模块名即可)。
总之,Java项目中的分包对于项目的组织、管理、架构和开发都是大有好处的,也让整个项目富有条理、清晰易读、便于维护、易于扩展。