如何在整个应用程序中维护集中式对象

Mah*_*rma 1 java design-patterns

我正在开发一个应用程序,我需要创建一个对象,多个类必须访问和修改该对象.如何查看其他类对象最近所做的更改以及如何通过所有类集中访问对象,而不将所有类作为参数传递给所有类?

我正在创建一个Apache POI文档,我在其中添加多个表,多个页眉/页脚和段落.我只想XWPFDocument在我的应用程序中出现一个对象.

我们可以实现任何设计模式吗?

Jon*_*eet 6

好了Singleton设计模式工作 -但不是非常干净; 你最终得到了全局静态,很难跟踪和难以测试.这些天它通常被认为是一种反模式.有一个非常少数情况下,它仍然是有意义的,但我会尽量避免它.

更好的方法是使用依赖注入:使需要其中一个对象的每个类声明该类型的构造函数参数(或者可能具有可设置的属性).每个类都不应过多关注对象的共享或其他方式(除了意识到它可以共享).然后由初始化应用程序的代码决定应该共享哪些对象.

Java有各种依赖注入框架,包括GuiceSpring.这些框架的想法是在给定适当的配置的情况下自动连接应用程序中的所有依赖项.