2

我正在考虑实现以下验证场景的最佳模式(如果可能的话来自四本书):

假设有一个对象称为 TLV(类型长度值)。看起来像这样:

public class TLV implements Serializable, TLVInterface {

    private Type type;
    private Length length;
    private Value value;   // the buffer may include sub-TLVs
…
getters/setters + other methods
…
}   

该对象可以包括相同类型的子对象,即子TLV。即,Value 字段具有可能包含子 TLV 的 ByteBuffer。
现在需要做的是确保只有特定的子 TLV 可以成为现有 TLV 的一部分。即需要检查主要对象类型只能包括特定的子类型,即子TLV。

TLV 对象是使用 Builder 模式使用流体接口创建的。之后的想法是使用复合模式来构建类似树的东西,即 tlv 内的 tlv。然而,这仍然留下了如何最好地验证这种结构以及这是否是它的最佳设计的问题。

这个问题更多的是关于如何实施适当的验证技术。例如,我正在考虑创建统计关联->其中每个“类型”(整数)数字具有在诸如 List 之类的 java 结构中静态键入的子类型(整数)数字。然后基于对该列表的快速搜索,可以找到剖析的子 TLV 类型是否与静态预键入列表中的类型匹配。这会起作用,但如果有更好/更智能的验证设计模式/技术可以在使用 TLV 和 Java 时依赖,我会感到好奇。也许有一种模式已经被其他人完全用于该目的。

我最初认为它可以工作的另一种方法是依赖 Java 接口并使用它们来将类标记为某种标记,然后遍历子 TLV 的类型来构建它们并确定它们是否实现了特定的接口。现在这意味着我需要手动创建至少一个类来代表我支持的每种不同的 TLV 类型。在我的情况下这是不可行的,因为可能有数千个,而编写代码将是一场噩梦。

非常感谢任何想法/技术。

4

0 回答 0