gpt4 book ai didi

java - 改变注入(inject)对象的状态是不好的做法吗?

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

假设我在代码中的多个不同类中注入(inject)了 List 的相同实例。从一个类中操作列表(例如添加/删除项目)以便其他类可以使用列表的新状态是否是一种不好的做法?除了并发问题,它是否是在我的类之间传达更改的正确方法?或者我应该在函数和不同层之间传递列表(如果我必须跨多个层传递大量变量,这可能会变得丑陋;与更改底层列表并在实例所在的任何地方更改状态相比注入(inject),不会污染任何方法签名)。

最佳答案

我认为更好的解决方案是使用同步访问,这在实例同时更改列表的情况下会有所帮助,但让我告诉你,允许实例直接更改列表,是一个非常糟糕的做法,理想的是使对象不可变,然后每个实例都可以毫无问题地使用自己的列表,但是如果您需要这种行为,在您的业务逻辑中,我建议创建一个持久性策略,一个封装列表并对其进行更改的对象,全局,不共享状态,然后其他实例可以在列表更改时获取列表的新副本,或者您可以创建子/通知策略以在列表状态更改时通知实例,然后更新其列表对象.

关于java - 改变注入(inject)对象的状态是不好的做法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59187636/

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