При создании веб-сервиса я решил обменять Business Object (BO) между клиентом и веб-сервисом.
Если в будущем я получу запрос на расширение моей модели, добавлю несколько новых атрибутов (полей) в свой BO и отправлю его клиенту, какой будет наилучший подход?
Итакв основном, каждый BO может иметь 0..n мета-полей.
Каждое мета-поле имеет вид Key, Value, например, где ключи могут быть любыми, от простых типов данных до других BO.
Вот немногоJava-код для моделирования BO, мне просто нужно подтверждение, что я на правильном пути.
class AbstractBO{
//optional list of meta fields for future extension
List<MetaField> metaFieldList;
//setters. getters
}
----
class MetaField {
private Object key;
private Object value;
// setters
// getters
}
----
class MyBO extends AbstractBO {
//BO specific fields
private String name;
...
}
---
TODAY
class Person extends AbstractBO {
private String name;
private int age;
//extend metaFieldList = null;
}
----
TOMORROW
class Person extends AbstractBO {
private String name;
private int age;
//list with new metafield
}
Как смоделировать Person для целей завтрашнего дня?