假设我在我的代码中的多个不同类中注入了同一实例的列表。从一个类中操纵该列表(例如添加/删除项目)以便其他类可以使用该列表的新状态,这种做法是否不好?除了并发问题外,这是传达类之间变化的正确方式吗?或者,我应该在函数和不同层之间传递列表(如果我必须在许多层之间传递许多变量,则可能会变得混乱),相对于在底层更改列表,并使实例被注入的任何位置都更新,而不污染任何方法签名。
Note: HTML标记已保留
Note: HTML标记已保留
是的,你说得对。如果你使用任何并发模型,改变注入对象(实例级属性)可能会带来很大的危害。
为了与其他线程通信,我建议使用具有ACID属性的持久性来存储和检索状态更改。
如果您想在不同的对象但相同的执行线程之间传递值,您也可以尝试使用线程本地存储值。 https://dzone.com/articles/painless-introduction-javas-threadlocal-storage