gpt4 book ai didi

java - 使用按功能包约定将我的框架类放在哪里?

转载 作者:行者123 更新时间:2023-12-03 02:58:26 25 4
gpt4 key购买 nike

我已经阅读了很多有关按功能包命名约定的内容。所以我决定在一个新项目中尝试一下。但是,我不确定应该如何命名我的大多数类将使用的包,因为我使用的是一个巨大的框架,例如 SpringHibernate,例如。

这就是处理我们的 Spring 上下文 类的方法:

enter image description here

还有我们的数据库访问类,用于管理连接等。

enter image description here

我有一个关于此的草案:为这些框架使用通用包,例如:

com.company.project.common.spring
com.company.project.common.database

但恐怕这看起来仍然有点像逐层封装。 :)应如何创建将由我的要素类访问的包?

最佳答案

常见的建议是“按功能打包,而不是按层打包”。我经常做的是“按功能打包,然后分层”。我还认为顶级包应该是基于“功能”的(功能组件,等等)。但我也喜欢将我的层分成子包。

从我的角度来看,与框架相关的代码本身并不构成“功能”(如“问题域的重要、高级方面”),因此按功能打包没有多大意义这里。但是,这仍然是重要的代码,您需要一种方法来构建它。

我通常使用两种方法:

如果我需要扩展或扩充我正在使用的库,我会按照与库的包结构并行的方式构建包。例如,如果我需要为 Spring 实现一些新的数字格式化程序,我可能会将包命名为 com.acme.foo.springframework.format.number ,平行于org.springframework.format.number .

但是,如果我需要为功能层实现通用基类,这可能类似于 com.acme.foo.common.<layer> 。例如,如果我们有 com.acme.foo.<feature>.dataaccess某些功能的数据访问层的软件包,com.acme.foo.common.dataaccess可以保存所有功能的数据访问层的基类。

两种方法并行使用。您只需决定某个类是框架还是库扩展(您能想象在该项目之外使用它吗?)或者它是否更接近您的项目的各层。

关于java - 使用按功能包约定将我的框架类放在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41160381/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com