Начну с небольшого примера:
Представьте себе приложение с несколькими объектами.
EntityA -1 --- n-> EntityB -1 --- n-> EntityC
Допустим, у нас есть сервисный метод, который возвращает список экземпляров EnityC. В пользовательском интерфейсе мы хотим отобразить EntityC, но также добавить к объекту некоторую дополнительную информацию, которая имеет отношение только к пользовательскому интерфейсу (может быть, класс css или около того). Распространенным способом решения этой проблемы является создание оболочки EntityC, которая также может содержать дополнительную информацию.
public class EntityCWrapper implements EntityC, AdditionalInfo { ...}
или, возможно, использовать объект переноса в качестве простой структуры данных:
public EntityTO {
public EntityC entity;
public AdditionalInfo info;
}
Но что, если служба возвращает список экземпляров EnitityA и нам нужно присоединить AdditionalInfo ко всем сущностям в графе экземпляров (включая экземпляры сущностей, на которые ссылаются EntityB и EntityC)?
Кто-нибудь имеет идею или может указать мне шаблон дизайна, подходящий в этой ситуации?