域对象模型的程序包命名约定

时间:2020-03-06 14:23:27  来源:igfitidea点击:

对于特定于域的对象模型,有哪些好的软件包命名约定?例如,假设我们有一个Person.java POJO,可以将其放入mydomain.model或者mydomain.entity或者mydomain.om(对象模型)包中。这个想法是将MVC模型对象与域对象模型分开。我们基于MVC的应用程序具有一个包含行为的模型包,但是使用该包包含我们的域对象模型似乎是不合适的,并且可能会造成混淆。

解决方案

我们选择的程序包名称是无关的。只要团队都在同一页面上,模型,域,vo,foobar都可以。我同意该程序包应仅包含没有重要业务逻辑的POJO域对象。

不仅如此,请注意命名空间的命名约定。我已经看到了名称空间名称在不同程序集中重复的情况。谈论混乱。

我个人使用" com.mycompany.domain",但这可能不是最佳答案。

我们可能想要垂直而不是水平地组织软件包以分离功能。

例如。

com.foobar.accounting.model.*
com.foobar.accounting.view.*

com.foobar.invoicing.model.*
com.foobar.invoicing.view.*

可能比

com.foobar.model.accounting.*
com.foobar.model.invoicing.*

com.foobar.view.accounting.*
com.foobar.view.invoicing.*