TLV(类型 - 长度 - 值)验证设计模式

时间:2016-03-11 13:51:12

标签: java validation design-patterns tlv

我在想什么是最好的模式(如果可能的话,从四本书的帮派中)来实现以下验证方案:

假设有一个对象叫做TLV(Type Length Value)。看起来像那样:

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字段的ByteBuffer可能包含子TLV 现在需要做的是确保只有特定的子TLV才能成为现有TLV的一部分。即需要检查主要对象类型是否只包括特定的子类型,即 子TLV。

使用流体界面使用Builder模式创建TLV对象。之后,我们的想法是使用Composite模式来构建类似于树的东西,即tlv中的tlv。然而,这仍然是如何最好地验证这种结构的问题,如果这是它的最佳设计。

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

我最初认为可行的另一种方法是依赖Java接口并使用它们将类标记为某种标记,然后迭代子TLV的类型构建它们并查找如果他们实现特定的接口。现在这意味着我需要手动创建至少一个代表我支持的每种不同TLV类型的类。在我的情况下,这是不可行的,因为那些可能是成千上万,而代码将是一场噩梦。

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

0 个答案:

没有答案