我相信我不是唯一面临这个问题的人,但直到现在我仍然无法找到解决方案。问题如下。
我发布了一个网络服务(我无法控制和更改其中的内容),所有客户端都在使用它。我从网络服务接收请求并获得一个非常复杂的对象,为了举例说明,让我们假设我从网络服务调用中接收到一个名为Object A的对象,其中包含其他几个对象,比如对象B、对象C等,而且对象B和对象C还包含一些基本数据类型以及其他对象。我的问题是,我想验证整个Object A(包括所有的子对象和子子对象)。这里推荐使用哪种设计模式?其次,关键点在于我可以从网络服务获取不同类型的Object A。我所说的不同类型的Object A是指Object A取决于客户端,即有些客户端将发送未填充包含在Object B中的数据的Object A,甚至可能部分填充Object B,然后将其发送到Object A中。因此,我必须根据客户端验证Object A(因为某些客户端需要包含对象B,而另一些客户端则不需要,有些客户端需要Object B中的几个元素等)。换句话说,我将有一个存储每个客户端验证规则的地方,这将告诉我客户端ABC想要Object B中的字段abc为字符串类型,最大长度为25个字符,并且该字段必须包含数据。
我想要执行的一些验证如下:
检查某个对象(比如对象B)的字段数据类型、某个字段的长度、该字段是否对于该客户端是必需的或可选的等等...
任何具体的工作示例都将非常有用。
这个特定示例的Object A结构如下。
public class A
{
private B objectB;
private C objectC;
// and so on
}
public class B{
private E objectE;
private String name;
private int age;
// and so on
}
public class C
{
private F objectF;
private String address;
private String country;
}
public class E
{
// Members here
}
public class F
{
// Members here
}
附言:我只是为了普通理解而给类和成员起了任意名称。哦,我忘了提到我在这里使用的是Java,但实际上并不重要,因为设计原则或模式可以适用于任何语言。希望很快能听到你们的回复.. :)