gpt4 book ai didi

ruby - 如何最好地重构具有大量条件逻辑的两个类?

转载 作者:数据小太阳 更新时间:2023-10-29 08:02:16 26 4
gpt4 key购买 nike

我有一个事件类,它保存事件的开始和结束时间。每个 Event 对象都可以有多个关联的 ChildEvent 对象,代表父 Event 的每次重复。这些类中的每一个都需要根据它们的编辑方式采取不同的操作,例如

只删除一个事件:

  • 事件:在删除之前让第一个 child 成为所有其他 child 的 parent
  • ChildEvent:照常删除

删除事件和所有后续事件:

  • 事件:删除所有子事件,然后删除自身
  • ChildEvent:删除所有 future 的 sibling ,然后删除自己

只编辑一个事件:

  • 事件:让第一个 child 成为所有其他 child 的 parent ,然后更新
  • ChildEvent:照常更新自身

编辑事件和所有后续事件:

  • 事件:更新所有子事件然后更新自身
  • ChildEvent:更新所有 future 的 sibling ,然后更新自己

目前,我通过检查条件并采取适当的行动来实现这一目标,但它开始变得困惑(还有其他条件与相关行为)。我很想知道更有经验的程序员会如何处理这个问题(我正在使用 ruby​​)。有什么想法吗?

最佳答案

听起来像是 specification pattern 的情况封装你的逻辑

关于ruby - 如何最好地重构具有大量条件逻辑的两个类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1153231/

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