2

Bob 大叔的 OOD 原则 ( http://butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod ) 描述:

  • 班级设计的五项原则
  • 包设计的六大原则(Release Reuse Equivalency Principle、The Common Closure Principle等)

文章指出:

在这种情况下,包是像 .jar 文件或 dll 一样的二进制交付物,而不是像 Java 包或 C++ 名称空间这样的名称空间。

这是否意味着这 6 条“包原则”根本不适用于 Java 包(使用关键字package定义)?这是否意味着以这种方式应用它们是错误的?如果是这样,您能否指出在哪里可以找到这样的命名空间包原则?

4

1 回答 1

0

是的,包原则可以应用于单个 Java 包,或其他语言的等效类(或其他单个软件单元)分组。

Martin 关于包原则的系列文章中的第一篇文章,即发布重用等效原则,解释了这些原则是关于类的分组。它相当随意地选择“包”作为这些分组的名称,然后提到该词在 Ada 和 Java 中用于这些语言中特定类型的分组。我的结论是,这些原则适用于任何类分组,包括 Java 包。

其他人已经成功地将包原则应用于 Java 包。JDepend根据 Java 包的包原则计算指标。我仍然怀念那个很棒的工具Optimal Advisor,它在包依赖图上显示了这些指标,以帮助重构。我发现它们都有助于识别违反包原则的包,并确认我何时通过重构修复了这些违规行为,例如将类移动到适当的包中。

于 2016-02-16T05:51:59.613 回答