如果一个系统有n个模块,每个模块都想去访问一块数据。我们应该怎么设计呢?
首先这块数据应该是独立的,并且是全局的,可以让每个模块很容易的访问。我们把这个数据独立出来,做成一个单独的class,并且使用单例模式保证系统中只有一个实例。
由于在n个模块中都要对这个数据访问。这几个模块很可能存在不同的线程中,要访问这个数据就可能遇到同步的问题。这样为了解决同步问题,我们添加了一个中间模块(代理模块),使用这个模块来访问数据。这样我们可以方便的解决同步问题,也可以通过这个模块更新、删除数据。