java - 在哪里存储类关系信息?

标签 java class-relationship

假设我们有类 A_1A_n 和类 B_1B_n

每个 A_i 都与一组 B_j 具有关系(抽象地说;关系可以是“A_4 喜欢 B_2”),反之亦然。

问题:哪里是存储关系信息的好地方?对于此类问题有好的模式吗?

解决方案 1:每个 A_i 都有一个列表字段,存储与其有关系的 B_j

解决方案 2:每个 B_i 都有一个列表字段,存储与其有关系的 A_j

解决方案1和2基本相同。

解决方案 3:将信息存储在第三个“信息”类中,例如作为矩阵。

最佳答案

无论您在解决方案1解决方案2之间选择哪一个,有关一个类喜欢什么的一些信息仅存储在另一个类中,这似乎有点倒退。< br/> 因此,我肯定会选择一个单独的 RelationKeeper 类,如下所示:

public enum RelationType {
    LIKES,HATES...
}
public class Relation {
   RelationType type;
   Class relatedClass; //Or in what type and form this is stored
}
public class RelationKeeper {
   public List<Relation> getRelationsFor(Class c) {
   }
   public void setRelationsFor(Class c, List<Relation> relations) {
   }
   public void addRelationFor(Class c, Relation relation) {
   }
   ...etc
}

通过这种方式,您可以自定义和更改内部存储方法以满足您的需求,具体取决于您是否希望能够仅检索类的“传出”关系,或者是否还希望能够获取“入站”关系关系。

关于java - 在哪里存储类关系信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11592558/

相关文章:

java - Java中增强的for循环的语法是什么?

关于当前时刻或系统生命周期的 UML 类关系

C# 无法从抽象父类对象访问子公共(public)方法

java - 获取 BeanTreeView 中的所有节点

java - 更改 vaadin 版本和 vaadin 插件版本后 Vaadin 构建失败

c# - Employee 和 EmployeeInfo - C# 关系

uml - 如何通过UML描述 "class uses class"关系

java - 使用 kotlin 反射将对象成员属性映射到 hashmap 时出现问题

java - 如何使用 PrettyFaces 重定向回同一页面?