gpt4 book ai didi

java - java中支持嵌套对象模型的最佳方式是什么?

转载 作者:行者123 更新时间:2023-11-30 07:53:41 30 4
gpt4 key购买 nike

我需要支持具有嵌套组件的 UI 客户端。我想出了下面的对象模型 -

public class SomeUserInterface { 
String name;
List<Component> components;
}
public class Component {
List <Component> components;
}

这里,SomeUserInterface 将有多个组件,每个组件可能在其中嵌套组件。所提出的对象模型有什么问题吗?或者支持嵌套组件的最佳方式是什么?

注意:SomeUserInterface 和 Component 不是相同的类。 SomeUserInterface 可以包含 Component,但反之则不然。

最佳答案

ComponentContainer 都可以包含组件。如果它们提供相同的添加/删除等方法,则它们应该从共同的祖先继承:

public class ComponentHolder {
List<Component> components;
}

public class Component extends ComponentHolder {
// ...
}

public class Container extends ComponentHolder {
String containerName;
// ...
}

编辑:另一种可能性是使用组合。这样,您的类就不需要共同的祖先,但仍会使用相同的组件列表实现。如果您决定更改组件的存储方式,则只需在一个位置进行即可。

public class ComponentHolder {
List<Component> components;
// add, remove, get, ...
}

public class Component {
ComponentHolder content;
void add(Component c) {
content.add(c);
}
// ...
}

public class Container {
String containerName;
ComponentHolder content;
// ...
}

关于java - java中支持嵌套对象模型的最佳方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32985236/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com