Skip to content

Commit b1accee

Browse files
authored
who had been sent
The ones who had been sent were from the Pharisees. (John 1:24)
1 parent ab39eb8 commit b1accee

1 file changed

Lines changed: 60 additions & 0 deletions

File tree

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
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

Comments
 (0)