【问题标题】:Package naming conventions for domain object models域对象模型的包命名约定
【发布时间】:2010-09-10 22:39:49
【问题描述】:
对于特定领域的对象模型,有哪些好的包命名约定。例如,假设你有一个 Person.java POJO,你会把它放在 mydomain.model 或 mydomain.entity 还是 mydomain.om(对象模型)包。这个想法是将 MVC 模型对象与域对象模型分开。我们基于 MVC 的应用程序有一个包含行为的 model 包,但使用该包来包含我们的域对象模型似乎不合适并且可能会造成混淆。
【问题讨论】:
标签:
c#
java
naming-conventions
packages
【解决方案1】:
我个人使用“com.mycompany.domain”,但这可能不是最佳答案。
【解决方案2】:
您可能希望垂直而不是水平组织您的包以分离功能。
例如。
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.*
【解决方案3】:
您选择的包名无关紧要。只要您的团队都在同一页面上,模型与域与 vo 与 foobar 都很好。我同意这个包应该只包含没有重要业务逻辑的 POJO 域对象。
【解决方案4】:
不仅如此,还要注意命名空间的命名约定。我见过命名空间名称在不同程序集中重复的情况。谈论混乱。