|
| 1 | + |
| 2 | +//The ones who had been sent were from the Pharisees. (John 1:24) |
| 3 | + |
| 4 | +package com.javarush.task.task36.task3608.model; |
| 5 | + |
| 6 | +import com.javarush.task.task36.task3608.bean.User; |
| 7 | +import java.util.Arrays; |
| 8 | + |
| 9 | +public class FakeModel implements Model { |
| 10 | + private ModelData modelData = new ModelData(); |
| 11 | + |
| 12 | + public void loadUsers() { |
| 13 | + modelData.setUsers(Arrays.asList(new User("test1", 1, 1), new User("test2", 1, 1))); |
| 14 | + } |
| 15 | + |
| 16 | + public ModelData getModelData() {return this.modelData;} |
| 17 | + |
| 18 | + public void loadDeletedUsers() {throw new UnsupportedOperationException();} |
| 19 | + |
| 20 | + public void loadUserById(long userId) {throw new UnsupportedOperationException();} |
| 21 | + |
| 22 | + public void deleteUserById(long id) { |
| 23 | + throw new UnsupportedOperationException(); |
| 24 | + } |
| 25 | +} |
| 26 | + |
| 27 | +/* |
| 28 | +MVC (8) |
| 29 | +1. Следуя принципу MVC аналогично реализации предыдущих методов сделай следующее: |
| 30 | +напиши логику удаления пользователя. После удаления должен отображаться список пользователей. |
| 31 | +
|
| 32 | +Распредели методы по классам MVC, используя следующие сигнатуры публичных методов: |
| 33 | +void fireEventUserDeleted(long id) |
| 34 | +void onUserDelete(long id) |
| 35 | +void deleteUserById(long id) |
| 36 | +
|
| 37 | +Примечание: метод, который ты собираешься добавить в Вью нужно добавить в EditUserView. |
| 38 | +
|
| 39 | +2. Добавь в main вызов fireEventUserDeleted(124L) перед вызовом метода fireEventShowDeletedUsers(). |
| 40 | +
|
| 41 | +3. Выполни рефакторинг класса MainModel. Теперь, когда есть удаленные пользователи, часть методов стала работать неправильно. |
| 42 | +Почти во всех методах, где требуется список пользователей, нужно работать только с активными(живыми) пользователями. |
| 43 | +Вынеси в отдельный приватный метод List<User> getAllUsers() получение списка всех активных пользователей. |
| 44 | +Фильтрация активных пользователей у тебя уже есть — метод List<User> filterOnlyActiveUsers(List<User> allUsers). |
| 45 | +Отрефактори все методы, которые используют список пользователей. Они должны использовать список живых пользователей. |
| 46 | +
|
| 47 | +4. Добавь в интерфейс Model метод, который ты поместил в Модель, реализуй его в FakeModel: выброси UnsupportedOperationException. |
| 48 | +
|
| 49 | +
|
| 50 | +Требования: |
| 51 | +1. Необходимо определить правильное расположение метода fireEventUserDeleted(long) и реализовать этот метод. |
| 52 | +2. Необходимо определить правильное расположение метода onUserDelete(long) и реализовать этот метод. |
| 53 | +3. Необходимо определить правильное расположение метода deleteUserById(long) и реализовать этот метод. |
| 54 | +4. В методе main класса Solution необходимо вызвать метод fireEventUserDeleted(124L) у объекта класса EditUserView перед вызовом метода fireEventShowDeletedUsers(). |
| 55 | +5. В методе main вызов методов должен происходить в такой последовательности: fireEventShowAllUsers(), fireEventOpenUserEditForm(126L), fireEventUserDeleted(124L), fireEventShowDeletedUsers(). |
| 56 | +6. Необходимо реализовать приватный метод List getAllUsers() в классе MainModel. |
| 57 | +7. Необходимо выполнить рефакторинг: все методы класса MainModel, которые используют список пользователей, должны использовать список живых пользователей. |
| 58 | +8. Интерфейс Model должен содержать объявление метода, который ты ранее реализовал в классе MainModel. |
| 59 | +9. В классе FakeModel в теле метода, помещенного в интерфейс Model, необходимо бросить UnsupportedOperationException. |
| 60 | +*/ |
0 commit comments