Val*_*lva 2 java spring hibernate naming-conventions package
我一直在阅读很多关于逐个功能命名约定的内容.所以我决定尝试一个新项目.但是,我不确定它应该如何命名我的大多数类将使用的包,因为我使用的是一个巨大的框架,例如Spring和Hibernate.
这是我们的Spring contexts类处理方式:
我们的database访问类,管理连接的访问类等.
我有一个关于这个的草案:使用这些框架的通用包,例如:
com.company.project.common.spring
com.company.project.common.database
Run Code Online (Sandbox Code Playgroud)
但我担心这仍然有点像package-by-layer.:) feature classes应该如何创建我将访问的包?
常见的建议是"逐个功能,而不是图层".我经常做的是"逐个功能,然后分层".我还认为顶级软件包应该是基于"功能"的(功能组件,无论如何).但我也希望将我的图层分成子包.
从我的观点来看,与框架相关的代码本身并不构成"特征"(如"问题领域的重要,高级方面"),因此逐个特征在这里没有多大意义.但是,这仍然是重要的代码,您需要一种方法来构建它.
我通常使用两种方法:
如果我需要扩展或扩充我正在使用的库,我会构建与库的包结构并行的包.例如,如果我需要为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则可以为所有功能的数据访问层保留基类.
两种方法并行使用.您只需要确定某个类是否是框架或库扩展(您能想象在此项目之外使用它吗?)还是更接近项目的各个层.
| 归档时间: |
|
| 查看次数: |
475 次 |
| 最近记录: |