java - 对于成对的对象来说,哪种包结构更具凝聚力?

标签 java package organization code-organization

我有一些 java 类,我想将它们放入包中。这是一个例子:

Foo.java 
Bar.java 
Qux.java 
MetaFoo.java 
MetaBar.java 
MetaQux.java

如您所见,类成对存在“Class”<->“MetaClass”。

我考虑了三种组织这些文件的方法:

一个包适用于所有类

只需将所有内容都放在一个包中即可。

enter image description here

将每对放入单独的包装中

这将产生以下结构:

Each pair in separate package

为类和元类创建单独的包

enter image description here

哪种方法具有较低的coupling及以上cohesion

其他信息:

  • 每个元类都包含具有“普通”类实例的字段,即 MetaFoo 包含 Foo 类型的字段 foo
  • 元类有一个共同的父类(super class),称为MetaClass。他们不再继承任何东西。
  • 常规类通过组合/聚合或继承相互关联。

最佳答案

在我看来,您应该将任何具有共享逻辑的类放在同一个包中 - 第二种情况。这是因为,如果您有多个子类(例如 xxxBar),那么所有这些类都触手可及。

关于java - 对于成对的对象来说,哪种包结构更具凝聚力?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22960589/

相关文章:

java - 生成随机数并存储

java - Intellij - 当文件夹结构与包名称不同时

r - 如何解决Mcode的 “model build step failed”错误(在 “mrgsolve”软件包下)?警告消息 “'表示“未找到”是什么意思?

android - 安装 android studio debian 无法定位包 lib32z1

c++ - 如何防止包括破损

java - 我如何在java中组织这个多边形列表以便它们易于使用?

java - 您什么时候想使用两个缓存的线程池?

java - Logback 与logstash-logback-encoder 不工作

java - 根据 JTextField 验证暂时禁用 JDialog 上的“确定”按钮

Applescript:突出显示组中的最新文件