Java程序设计之——代码耦合性与包的结构

问题和分析:

    如下,一种 常见的 包结构

 |--x.y.service             -------存放service接口(interface)

 |--x.y.service.impl    -------存放service接口的实现类

这种设计,从代码结构上来说,是下层(impl层)的代码 依赖于上层(service层)的代码,这样有个好处:代码耦合性低,我们可以把下层代码移除,而上层代码不会受到影响


但是,在某些时候,我们往往违反了这个规则,我们经常在上层 调用下层的代码。比如说下面这个例子:

 |--x.y.xml                -------存放xml相关工具类

 |--x.y.xml.praser    -------专门存放20多个xml解析器,供上层xml工具类中调用

从常理来说,x.y.xml包 是一个对外提供服务的包,而x.y.xml.praser是在 x.y.xml 内部使用的包。所以说这样设计是合理的。


总结:

   参考Spring、Apache等优秀Java开源项目的源码,我们发现,上面所说的两种情况都是存在的,但是第二种情况出现得比较少,仅在一些特殊的情况下才这样用。

   结论: 在同一个 业务package 下,直接隶属于该package的代码 应该 尽量少的引用 其子package的代码,也就是说,顶层package一般存放一些接口、公用类等相对独立的代码(不会引用子package的代码),但是在某些情况下,例如某些部分要单独放在子package中,而且在父package中要引用这些代码

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值