Я уверен, что я не единственный, кто сталкивается с этой проблемой, но до сих пор я не могу найти решение. Проблема заключается в следующем.
Я опубликовал веб-сервис (на котором у меня нет никакого контроля, и я не могу его изменить) из унаследованной системы, и все клиенты используют его. Я получаю запросы от веб-службы, и объект, который я получаю, является очень сложным, но для примера можно сказать, что я получаю объект A от вызова веб-службы, который содержит несколько других объектов, таких как Object B, Object C и т.д. И т.д. кроме того, объекты B и C также имеют некоторые примитивные типы данных, а также некоторые другие объекты в них. Моя проблема в том, что я хочу проверить весь объект A (все объекты и суб объекты), какой шаблон дизайна рекомендуется здесь? Во-вторых, основной момент здесь заключается в том, что я могу получить различные типы объектов A из веб-службы. То, что я действительно подразумеваю под разными типами объектов A, заключается в том, что объект A зависит от клиента, то есть некоторые клиенты будут отправлять объект A без заполнения данных в содержащем объекте B или даже частично заполнить объект B, а затем отправить его в Object A. Поэтому я должен проверить объект A на основе клиента (поскольку некоторым клиентам потребуется содержать объект B, некоторые не будут, некоторые потребуют нескольких элементов в объекте B и т.д.). Таким образом, другими словами, у меня будет место, где я также буду хранить правила проверки для каждого клиента, который скажет мне что-то вроде этого, что клиент ABC хочет, чтобы поле abc в объекте B имело строку типа, а максимальная длина - 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
}
P.S: Я дал произвольные имена классам и членам только для общего понимания. O да, я забыл упомянуть, что я использую java здесь, но это не имеет особого значения, поскольку принципы дизайна или шаблоны могут применяться к любому языку. Надеюсь услышать от вас, ребята, скоро..:)