Java 对于成对的对象,哪个包结构更具内聚性?
我有一些java类,我想把它们放入一个包中。以下是一个例子:Java 对于成对的对象,哪个包结构更具内聚性?,java,package,organization,code-organization,Java,Package,Organization,Code Organization,我有一些java类,我想把它们放入一个包中。以下是一个例子: Foo.java Bar.java Qux.java MetaFoo.java MetaBar.java MetaQux.java 如您所见,类成对存在于“类”“元类”中 我认为组织这些文件的方法有三种: 所有课程一套 简单地把所有东西都放在一个包里 将每一对放在单独的包装中 这将导致以下结构: 为类和元类创建单独的包 哪种方法具有更低和更高的效率 其他信息: 每个元类包含带有“普通”类实例的字段,即MetaFoo
Foo.java
Bar.java
Qux.java
MetaFoo.java
MetaBar.java
MetaQux.java
如您所见,类成对存在于“类”“元类”中
我认为组织这些文件的方法有三种:
所有课程一套
简单地把所有东西都放在一个包里
将每一对放在单独的包装中
这将导致以下结构:
为类和元类创建单独的包
哪种方法具有更低和更高的效率
其他信息:
- 每个元类包含带有“普通”类实例的字段,即
包含MetaFoo
类型的字段foo
foo
- 元类有一个称为
。他们不再继承任何东西李>元类的公共超类
- 常规类不通过组合/聚合或继承相互关联
- 方法1:3/1=3
- 方法2:(1+1+1)/3=1
- 方法3:(3+3)/2=3
- 方法1:3/6=0.5
- 方法2:(1/2+1/2+1/2)/3=0.5
- 方法3:(0/3+6/3)/2=1
令人惊讶的是,第三种方法似乎是最糟糕的 我总是喜欢使用包作为一种对类似类进行分组的方式,而不是对链接在一起的类进行分组。所以我会选择第二种选择。虽然,正如@CeilingGecko所说,它是基于观点的。就个人而言,我也更喜欢第二种方法,但这将导致“正常”和“元”包之间的高度耦合,不是吗?