В ЖО. Чистый value object - это ерундистика полная, получается, что все вокруг должны знать о его полях. Это вообще антиООП, вся "инкапсуляция" мехом наружу.User - value object,
В ЖО. Чистый value object - это ерундистика полная, получается, что все вокруг должны знать о его полях. Это вообще антиООП, вся "инкапсуляция" мехом наружу.User - value object,
Как это _нарушит_ его архитектуру? Расширит - ок, нарушит ли? Этот faillover будет или в слое коннектора или как обертка по эксепшену.вот еще "в кассу" из моей жизни: добавим в данные пользователей поле paid bool, и архитектура приложения вырастает из фиксеровского примера на 3 строки в конструкцию с выделением большого слоя REST с реализацией failover и переводом сервера B в специальный режим ограниченного функционала при сбое связи
Не, я в общем понял твою идею. Может и ничего плохого. Мне просто цепочка зависимостей нравится больше, чем треугольник (коллекция - юзер - коннектор), ну хотя бы для тестирования, но в общем скорее больше субъективно, я и спросил, что бы такие нюансы увидеть - кто как построил быЯ об ином подходе. Есть User extends ItemEntity, есть UserCollection extends EntitiesCollection<User> (дженерик эмулируем статическим методом getItemClass). Item умеет себя загрузить и сохранить через датасорс, Collection умеет делать запросы к датасорсу на много итемов и создавать их коллекцию. Да, получается связанная пара, но не вижу в этом ничего плохого: Collection это такая загружалка-и-фабрика, но Item можно использовать и отдельно (так же как объект можно создать фабрикой, а можно просто так).

@grigori и что? Архитектура - это не название классов, это разделение по обязанностям. С тем, что бы при изменении ситуации достаточно было заменить какую-то часть. Замена REST API - в худшем случае замена RestConnector на FileConnector и модификация User, в лучшем - только первое. Зависит от интерфейса коннектора. Это я про генератор, т.е. с вашей стороны. С их стороны - в общем то же самое - меняется слой коннектора, который забирает файл курлом и читает его.сам коннектор раздувается на 3 слоя, а этот failover делается в отдельном сервисном слое между коннектором и контроллером
>Изменилась архитектура принципиально?
ты че, не выспался? весь REST API вообще выкинули, все заново написали, вместо обработки входящих запросов забирают curl-ом файл и парсят его по крону
Совсем чуть-чуть сложнее, как раз, что бы чуть-чуть выдуматьСама задача сравнить два списка и дополнить второй слишком простая, чтоб выдумывать что-то сложное.
Напоминает проект складывающий 1+1..
)))В коллекции инкапсулировано создание юзера, в общем по большому счету она для этого нужна, кроме функций массива.Про колекции тоже немного перемудрили, колекция - это просто структура данных для роботы со списком элементов, в этой задачке можно и простыми массивами обойтись.

Отлично, спасибо. Мне как раз теории не хватает, а времени погружаться в книги нет =(Не договорившись о терминологии заниматься теретическими построениями затруднительно.
Да и паттерны Фаулера - это консультативные услуги, а не наука.