假设我在代码中的多个不同类中注入(inject)了 List 的相同实例。从一个类中操作列表(例如添加/删除项目)以便其他类可以使用列表的新状态是否是一种不好的做法?除了并发问题,它是否是在我的类之间传达更改的正确方法?或者我应该在函数和不同层之间传递列表(如果我必须跨多个层传递大量变量,这可能会变得丑陋;与更改底层列表并在实例所在的任何地方更改状态相比注入(inject),不会污染任何方法签名)。
最佳答案
我认为更好的解决方案是使用同步访问,这在实例同时更改列表的情况下会有所帮助,但让我告诉你,允许实例直接更改列表,是一个非常糟糕的做法,理想的是使对象不可变,然后每个实例都可以毫无问题地使用自己的列表,但是如果您需要这种行为,在您的业务逻辑中,我建议创建一个持久性策略,一个封装列表并对其进行更改的对象,全局,不共享状态,然后其他实例可以在列表更改时获取列表的新副本,或者您可以创建子/通知策略以在列表状态更改时通知实例,然后更新其列表对象.
关于java - 改变注入(inject)对象的状态是不好的做法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59187636/