1

我在 POJO 中定义了一个实体模型

class A {
    B instance_b; 
}

class B {
    Collection<C> instance_c;
}

class C {}

我已经实现了一个观察者模式,其中有 2 个具体的观察者 - JsonListener 和 DatabaseListener,它们用于将 A 类的单例实例序列化为 json 文件(使用 jackson)并作为 json clob 序列化为 db。我有一个 LifeCycleManager 接口,带有通常的 register()、deregister() 和 notify() 方法来添加侦听器并通知他们

我为每个类编写了一个构建器来修改私有属性(故意没有定义任何设置器)。构建器有一个 update() 方法,我想通过它隐式通知所有注册的侦听器。

有2个查询-

  1. 我是否应该为所有类 A、B、C 实现 LifeCycleManager 接口,以便调用 notify() 方法?或者是否有替代方法可以避免这种情况,因为随着实体模型的增长,它看起来很麻烦。

  2. 由于我正在写入 json 文件,据我所知,使用任何 json 库(如 fastxml.jackson),我需要将整个 json 对象(从 A 类开始)重新写入 json 文件。如果我的理解是正确的,那么如果我在 Class C 的构建器中并发出 notify() 方法,我如何用 Class A 的实例通知侦听器?(基本上我如何从 C 类中获取 A 的实例?),因为仅更新 C 类实例还不够好 - 我需要尊重关联。是否有一些我可以利用的设计?

请提出建议或建议,即使它需要对我的思路进行完整的课程修正。

谢谢。

4

0 回答 0