Объекты должны быть тупыми. Когда я создаю что-то, оно не должно делать ничего, кроме того, о чем я его спрашиваю, то есть создавать себя. Не обращайтесь к веб-сервисам и не пишите в базу данных. Если бы я использовал ваши объекты в качестве другого разработчика в вашей команде, я был бы шокирован.
Именно поэтому я думаю, что вы боретесь за правильный шаблон, потому что у вашего объекта есть несколько проблем.
Я думаю, что лучшим подходом здесь будет создание службы, которая возвращает объекты, такие как PersonService, EventService и т. Д., Которая выполняет следующие действия:
- Получить запись из базы данных
- Если необходимо проверить веб-сервис:
- Извлечение данных из веб-службы
- Если изменения существуют, сохранить обратно в базу данных
- Передать запись в конструктор объекта
- Возврат объекта
Это позволяет не беспокоиться о вызове веб-службы в таком месте, где это имеет смысл, то есть в коде, который извлекает необходимые данные для создания и возврата объектов, то есть службы (РЕДАКТИРОВАТЬ: фактически DAO, но вы идея).