Java 的包结构该怎么定义

2018-07-02 21:36:35 +08:00
 LosLord

写了很长一段时间 Java 了,但是之前一直都是自己开发,也没个规范,模块和功能有时候乱七八糟弄在一起,这样接下来也不是个事,所以想请教一下 规范的包结构该是什么样的。
我也看了一下各个开源项目,因为基本都不是业务,都是类似于工具的开源项目,包结构比较好分。

比如有个大项目: 一个系统有多个功能模块,有定时任务,有 Aop,自定义的网络框架,Bean 无数,业务基于 Spring 编写。 像这样的项目该怎么定义包结构。

5091 次点击
所在节点    Java
8 条回复
KentY
2018-07-02 21:44:15 +08:00
基本上,一种是按技术角度分, 比如就是最烂大街的 controller, dao, service, utils....
还有一种, 如果业务上的各个分类的功能很相似, 又挺繁多, 为了维护某个业务方便, 也可以按业务来 /usermgmt/dao, usermgmt/service... /customermgmt/dao, /customermgmt/service etc.

这个东西统一就好, 并不影响代码的质量。
LosLord
2018-07-02 22:11:41 +08:00
@KentY #1 我先在是用第一种,小项目还好,项目一大,就乱七八糟的。第二种也想过,但是有时候共用的类都不知道放在哪
airfling
2018-07-02 22:20:58 +08:00
我基本上都是相同或者关联性比较强的放在一起
zjsxwc
2018-07-02 22:33:42 +08:00
没什么好考虑的,无脑根据被依赖相关程度划分代码模块,当然要符合 solid 原则写代码,嗯,也就是跟着感觉走,反正重构时挪一下位置也快的
kanezeng
2018-07-02 22:40:25 +08:00
真的大项目,就还是拆成微服务的小项目吧,对大项目来说还是值得的
feiyuanqiu
2018-07-02 23:20:56 +08:00
按模块分呗,用 maven 组织 module,把领域模型、基础服务拆分出单独的 module,把任务、web 也拆成单独的 module
laball
2018-07-03 09:17:00 +08:00
建议按适当的粒度划分模块吧,不过,有的时候不是很好把握。
可以先按照一个大的规则划分,然后,等模块达到一定的复杂程度后,再进行拆分;
archangels
2018-07-03 12:31:07 +08:00
可以按模块分,然后按照自己的兴趣给各个模块取个别名

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/467604

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX