java框架包结构设计

原则:
有四个原则知道包的构成:
1. 包内高内聚。但在某些分布式环境下可能打破这种原则。
2. 隐藏细节,特别是实现的细节。
3. 面向问题域(即面向业务),使用该领域的一般概念组织包结构,而不是使概念支离破碎
4. 一个包内的类可以被共同重用。

同样有四条指导包间的关系:
5. 包间低耦合
6. 无循环依赖(ADP)。
7. 稳定依赖(SDP),尽量依赖稳定的包(意味着难以改变).
8. 抽象依赖(SAP),稳定的包要用抽象的层(or接口)隔离.

=============================================================
系统框架结构:
com.willfar 代表公司,或者开源组织这样你的包永不会与别人重复。
名称也以自己定。

dao接口层
com.willfar.dao
实现层(一个接口可以N种实现,随意使用,想用那种用那种)
com.willfar.dao.jdbc
com.willfar.dao.hibernate
com.willfar.dao.ibatis
com.willfar.dao.ole
......

service接口层
com.willfar.service
//pojo一般用做混合实现(混有jdbc,ibatis等)
com.willfar.service.pojo
com.willfar.service.jdbc
com.willfar.service.hibernate
com.willfar.service.ibatis
......

business接口层
com.willfar.business
......

entity层
com.willfar.entity
com.willfar.dto
//系统初始化操作
com.willfar.init
//系统定时启动的服务
com.willfar.job
com.willfar.util
com.willfar.webservice

//常量
com.willfar.constant
//系统启动后配置变量
com.willfar.env
//Global所有系统中服务的目录
com.willfar.env.Global

//系统核心运算引擎,包括计算机,数学,规约,物理,度量衡等等处理数据的核心算法
com.willfar.engine
com.willfar.engine.computer
com.willfar.engine.math
com.willfar.engine.metrology
com.willfar.engine.physics
com.willfar.engine.protocol
注:以上基本是抽象类与接口来做,当然有些是class


===================================================
具体项目包结构:
具体项目系统则有所不同,根据8个原则来说应当如下设计:

com.willfar 代表公司,或者开源组织这样你的包永不会与别人重复。
名称你也以自己定。
com.willfar.commons 代表产品通用功能
com.willfar.xxxxxxx 代表产品中特殊项目专用
com.willfar.commons.user 代表产品中用户模块通用部分内容
com.willfar.xxxxxxx.user 代表产品中特殊项目专用用户模块内容部分


dao接口层
com.willfar.commons.user.dao
实现层(一个接口可以N种实现,随意使用,想用那种用那种)
com.willfar.commons.user.dao.jdbc
com.willfar.commons.user.dao.hibernate
com.willfar.commons.user.dao.ibatis
com.willfar.commons.user.dao.ole
......

service接口层
com.willfar.commons.user.service
//pojo一般用做混合实现(混有jdbc,ibatis等)
com.willfar.commons.user.service.pojo
com.willfar.commons.user.service.jdbc
com.willfar.commons.user.service.hibernate
com.willfar.commons.user.service.ibatis
......

business层
com.willfar.commons.business.user

entity层
com.willfar.commons.user.entity
com.willfar.commons.user.dto
//系统初始化操作
com.willfar.commons.init
//系统定时启动的服务
com.willfar.commons.job
com.willfar.commons.util
com.willfar.commons.user.webservice

//常量
com.willfar.commons.constant
//系统启动后配置变量
com.willfar.commons.env
//Global所有系统中服务的目录
com.willfar.commons.env.Global

//系统核心运算引擎,包括计算机,数学,规约,物理,度量衡等等处理数据的核心算法
com.willfar.commons.engine
com.willfar.commons.engine.computer
com.willfar.commons.engine.math
com.willfar.commons.engine.metrology
com.willfar.commons.engine.physics
com.willfar.commons.engine.protocol

注: com.willfar.xxxxxxx 特殊项目部分就不再例出

你可能感兴趣的:(java框架包结构设计)