You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java POJO建模:Person类多地址属性选独立字段还是列表存储?

选型结论

两种方案没有绝对的好坏,完全适配不同的业务场景,你倾向的方案1在绝大多数固定地址类型的业务下,是性价比最高的选择。

方案1的核心优势&适用场景

  • 代码操作成本极低:直接通过getPhysicalAddress()/setMailingAddress()就能操作对应地址,不需要遍历列表过滤类型,也不需要处理无匹配地址、多匹配地址的异常分支,可读性和可维护性都远高于方案2。
  • 周边适配成本低:不管是做参数校验(比如给实体地址加非空校验)、ORM数据库映射、前后端接口序列化,都可以直接针对单个属性处理,不需要写自定义转换逻辑。
  • 适用场景:业务明确Person的地址类型是固定的(比如只有实体、邮寄、账单这几种),后续不会频繁新增类型,也不需要支持用户自定义地址类型的场景。哪怕后续要新增地址类型,只需要在Person类加对应属性即可,改造成本非常低。

方案2的核心优势&适用场景

  • 唯一的优势就是支持动态扩展:如果你的业务需要支持用户自定义新增地址类型(比如后台可以配置新增「自提点地址」「发票地址」不需要改代码发版),或者一个人可以有多个同类型地址(比如3个不同的邮寄地址),这种场景下才需要选方案2。
  • 对应的劣势也非常明显:每次取指定类型地址都要遍历列表做判断,很容易出现空指针、类型匹配错误等问题,校验、持久化、序列化的适配成本都高很多,属于为了灵活性牺牲了易用性。

最终建议

只要你当前没有动态地址类型、多同类型地址的需求,直接选方案1即可,完全没必要为了虚的“扩展性”做过度设计。哪怕后续真的出现了动态地址的需求,这个级别的重构成本也很低,完全可以等需求明确了再改。

内容的提问来源于stack exchange,提问作者confused human

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.12 18:21:03