【发布时间】:2016-08-19 05:15:55
【问题描述】:
鲍勃大叔的OOD原理(http://butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod)描述:
- 类设计的五项原则
- 包设计六大原则(Release Reuse Equivalency Principle、The Common Closure Principle等)
文章指出:
在这种情况下,包是像 .jar 文件或 dll 一样的二进制交付物,而不是像 Java 包或 C++ 命名空间这样的命名空间。
这是否意味着这 6 条“包原则”不适用于 Java 包(使用关键字 package 定义)?这是否意味着以这种方式应用它们是错误的?如果是这样,您能否指出在哪里可以找到这样的命名空间包原则?
【问题讨论】:
-
它告诉您文档中使用的术语
package与java 包(就关键字而言)没有任何关系。至于第二个要点;我其实不知道你在问什么。 Wikipedia entry for Namespace 在非编程上下文中解释它。那里有很多好的实践,但没有命名空间本身的原则。 -
问题是另一篇文章 (objectmentor.com/resources/articles/granularity.pdf) 描述了完全相同的六种包装原则。但它说:在本文中,我们将......将这些高阶颗粒称为“包”。 ...术语“包”在 Ada 和 Java 圈子中很常见。在这些语言中,包用于表示可以导入其他程序的声明的逻辑分组。所以问题是:我们能否将 REP、CRP、CCP ... 原则应用于 java NS 包以及 java 档案 (JAR)?谢谢
标签: java oop packages package-design