我确信我不是唯一一个面临这个问题的人,但直到现在我都无法找到解决方案。问题如下。
我已经从旧系统发布了一个 Web 服务(我没有任何控制权,也无法更改它),并且所有客户端都在使用它。我收到来自 Web 服务的请求,而我得到的对象是一个非常复杂的请求,但为了举例,假设我从 Web 服务调用中接收到对象 A,其中包含其他几个对象,如对象 B、对象 C 等此外,对象 B 和 C 也有一些原始数据类型以及其中的一些其他对象。我的问题是我想验证整个对象 A(所有包括对象和子对象),这里推荐哪种设计模式?其次,这里的重点是我可以从 Web 服务中获取不同类型的 Object A。我所说的不同类型的对象 A 的真正意思是对象 A 取决于客户端,即 一些客户端将发送对象 A 而不将数据填充到包含对象 B 中,甚至他们可以部分填充对象 B,然后将其发送到对象 A。所以我必须根据客户端验证对象 A(因为某些客户端需要包含对象 B 有些不需要,有些需要对象 B 中的少量元素等)。所以换句话说,我将有一个地方存储每个客户端的验证规则,这将告诉我客户端 ABC 希望对象 B 中的字段 abc 为字符串类型,最大长度为 25 个字符,它必须在该字段中有数据。所以我必须根据客户端验证对象 A(因为有些客户端需要包含对象 B,有些则不需要,有些需要对象 B 中的少量元素等)。所以换句话说,我将有一个地方存储每个客户端的验证规则,这将告诉我客户端 ABC 希望对象 B 中的字段 abc 为字符串类型,最大长度为 25 个字符,它必须在该字段中有数据。所以我必须根据客户端验证对象 A(因为有些客户端需要包含对象 B,有些则不需要,有些需要对象 B 中的少量元素等)。所以换句话说,我将有一个地方存储每个客户端的验证规则,这将告诉我客户端 ABC 希望对象 B 中的字段 abc 为字符串类型,最大长度为 25 个字符,它必须在该字段中有数据。
我想要执行的一些验证是
检查某些对象(例如对象 B)的字段的数据类型、特定字段的长度、是此客户端所需的字段还是可选的字段等...
任何具体的工作示例都将非常有用。
此特定示例的对象 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
}
PS:我给类和成员起了任意的名字,只是为了一般的理解。哦,是的,我忘了提到我在这里使用的是 java,但这并不重要,因为设计原则或模式可以应用于任何语言。希望尽快收到你们的来信.. :)