将参数传递给侦听器(Java / OOP约定/最佳实践)

时间:2019-04-15 11:58:30

标签: java oop parameter-passing listener conventions

我需要创建一个类来侦听文件更改,解析文件并从中收集所需数据,然后将该数据保存到数据结构(例如JSONObject)中,然后调用每个侦听器的onDataUpdate(JSONObject data)向他们提供经过解析的data的方法。

我发现这种方法有一个缺点,那就是-每个侦听器都可以更改传递的非基本JSONObject data参数的内容。

我已经考虑过针对此问题的一些解决方案,但似乎没有一个是最佳方案。以下是其中一些:

  1. 为每个侦听器提供一个深层副本。缺点:可能使用 大量的CPU时间和内存来创建与侦听器一样多的副本。
  2. 将已解析的数据写入只读文件(然后为每个侦听器提供文件路径)。缺点:每个侦听器都需要再次重新解析文件。
  3. 创建我自己的数据结构的不变版本(然后为每个侦听器提供对该实例的引用)。

有没有更好,更优雅的方法呢? 是否存在约定说明在这种情况下该怎么办?

0 个答案:

没有答案