gpt4 book ai didi

java - 大型哑数据对象的最佳实践?

转载 作者:行者123 更新时间:2023-12-01 11:12:54 28 4
gpt4 key购买 nike

我正在使用 gson 创建一个 java 对象来表示一些 JSON。此 JSON 定义了触摸屏游戏 Controller 的布局,因此非常复杂(每个设备都有一个方向,每个方向都有按钮,每个按钮都有位置/大小等)

我尝试创建的程序将用作 Controller 布局的独立编辑器。

我所做的是为每种类型(按钮、设备等)创建一个类,如下所示:

public class Device {
public Button dpad;
public Button a;
public Button b;
public Button start;
public Button select;
public Button l;
public Button r;
public Button menu;
public ExtendedEdges extendedEdges;
}

对象本身没有逻辑;所有序列化/反序列化均由 gson 处理。

我最近读了几本编程书籍,其中一个主要主题是德米特定律和代码耦合,而这个类将导致其他对象打破这一点。然而,实际上并没有一种方法可以符合良好的编码实践。提供访问器方法并将字段设置为私有(private)将是多余的,因为程序需要对整个对象进行写访问。此外,它相当容易编写:

Device device = foo(); //returns Device
bar(device.dpad.width); //Does something that involves the width of the dpad

有没有更好的方法来处理嵌套的 JSON 表示,或者在这种情况下违反德米特定律也可以吗?

最佳答案

这里您需要担心的是数据表示的耦合,这确实会带来风险;如果这个 JSON 对象被公开使用,您就不能愿意从中删除元素,因为依赖它的消费者将来会崩溃。您当然可以向其中添加元素,因为使用遗留结构的消费者不一定关心额外的字段。

除此之外,这种巨型数据对象结构在 JSON 数据的序列化/反序列化中很常见。同样,它是耦合的,但仅与您响应的实际结构耦合。

关于java - 大型哑数据对象的最佳实践?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32151678/

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