Skip to content

Commit 159403b

Browse files
authored
God has prepared for them that love him
But as it is written, Eye has not seen, nor ear heard, neither have entered into the heart of man, the things which God has prepared for them that love him. (1Cor 2:9)
1 parent b1accee commit 159403b

1 file changed

Lines changed: 102 additions & 0 deletions

File tree

  • Multithreading/task24/task3608/MVC-9/bean
Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
2+
//But as it is written, Eye has not seen, nor ear heard, neither have entered into the heart of man, the things which God has prepared for them that love him. (1Cor 2:9)
3+
4+
package com.javarush.task.task36.task3608.bean;
5+
6+
public class User implements Cloneable {
7+
private String name;
8+
private final long id;
9+
private int level;
10+
11+
public static final User NULL_USER = new User();
12+
13+
public User(String name, long id, int level) {
14+
this.name = name;
15+
this.id = id;
16+
this.level = level;
17+
}
18+
19+
public User() {
20+
this("", 0, 0);
21+
}
22+
23+
24+
//methods with logic
25+
public boolean isNew() {
26+
return id == 0;
27+
}
28+
29+
public User clone() {
30+
try {
31+
return (User) super.clone();
32+
} catch (CloneNotSupportedException ignored) {
33+
return NULL_USER;
34+
}
35+
}
36+
37+
public User clone(long newId) {
38+
if (this == NULL_USER) return NULL_USER;
39+
40+
return new User(name, newId, level);
41+
}
42+
43+
///// getters and setters
44+
public String getName() {
45+
return name;
46+
}
47+
48+
public void setName(String name) {
49+
this.name = name;
50+
}
51+
52+
public long getId() {
53+
return id;
54+
}
55+
56+
public int getLevel() {
57+
return level;
58+
}
59+
60+
public void setLevel(int level) {
61+
this.level = level;
62+
}
63+
64+
@Override
65+
public String toString() {
66+
return "User{" +
67+
"name='" + name + '\'' +
68+
", id=" + id +
69+
", level=" + level +
70+
'}';
71+
}
72+
}
73+
74+
/*
75+
MVC (9)
76+
Это последнее задание по MVC.
77+
78+
1. Следуя принципу MVC аналогично реализации предыдущих методов сделай следующее:
79+
напиши логику обновления пользователя. После обновления должен отображаться список пользователей.
80+
81+
Распредели методы по классам MVC, используя следующие сигнатуры публичных методов:
82+
void fireEventUserChanged(String name, long id, int level)
83+
void onUserChange(String name, long id, int level)
84+
void changeUserData(String name, long id, int level)
85+
86+
где name и level — это новые значения для пользователя с выбранным id.
87+
88+
Примечание: метод, который ты собираешься добавить в Вью нужно добавить в EditUserView.
89+
90+
2. Добавь в main вызов fireEventUserChanged перед вызовом метода fireEventShowDeletedUsers().
91+
92+
3. Добавь в интерфейс Model метод, который ты поместил в Модель, реализуй его в FakeModel: выброси UnsupportedOperationException.
93+
94+
95+
Требования:
96+
1. Необходимо определить правильное расположение метода fireEventUserChanged(String name, long id, int level) и реализовать этот метод.
97+
2. Необходимо определить правильное расположение метода onUserChange(String name, long id, int level) и реализовать этот метод.
98+
3. Необходимо определить правильное расположение метода void changeUserData(String name, long id, int level) и реализовать этот метод.
99+
4. В методе main необходимо вызвать метод fireEventUserChanged(String, long, int) перед вызовом метода fireEventShowDeletedUsers().
100+
5. Интерфейс Model должен содержать объявление метода, который ты ранее реализовал в классе MainModel.
101+
6. В классе FakeModel в теле метода, помещенного в интерфейс Model, необходимо бросить UnsupportedOperationException.
102+
*/

0 commit comments

Comments
 (0)