-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathCarController.java
More file actions
80 lines (55 loc) · 2.65 KB
/
CarController.java
File metadata and controls
80 lines (55 loc) · 2.65 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
//And I went unto the angel, and said unto him, Give me the little book. And he said unto me, Take it, and eat it up; and it shall make thy belly bitter, but it shall be in thy mouth sweet as honey. (Revelation 10:9)
package com.javarush.task.task36.task3609;
public class CarController {
private CarModel model;
private SpeedometerView view;
public CarController(CarModel model, SpeedometerView view) {
this.model = model;
this.view = view;
}
public void speedUp(int seconds) {
if (model.getSpeed() < model.getMaxSpeed()) {
model.setSpeed((int) (model.getSpeed() + (3.5 * seconds)));
}
if (model.getSpeed() > model.getMaxSpeed()) {
model.setSpeed(model.getMaxSpeed());
}
}
public void speedDown(int seconds) {
if (model.getSpeed() > 0) {
model.setSpeed(model.getSpeed() - (12 * seconds));
}
if (model.getSpeed() < 0) {
model.setSpeed(0);
}
}
public String getCarBrand() {
return model.getBrand();
}
public String getCarModel() {
return model.getModel();
}
public void setCarSpeed(int speed) {
model.setSpeed(speed);
}
public int getCarSpeed() {
return model.getSpeed();
}
public int getCarMaxSpeed() {
return model.getMaxSpeed();
}
public void updateView() {
view.printCarDetails(getCarBrand(), getCarModel(), getCarSpeed());
}
}
/*
Рефакторинг MVC
Перемести некоторые методы в нужные классы, что бы получить паттерн MVC. Если необходимо - внеси изменения в метод main, которые отражают внесенные тобой изменения. Поведение программы при этом не должно измениться.
НЕ изменяй названия классов, методов и полей.
Требования:
1. Вывод программы должен остаться без изменений.
2. Необходимо переместить метод void speedUp(int) из класса CarModel в класс CarController.
3. Необходимо переместить метод void speedDown(int) из класса CarModel в класс CarController.
4. В методе main класса Solution метод speedUp необходимо вызывать у контроллера, а не у модели.
5. В методе main класса Solution метод speedDown необходимо вызывать у контроллера, а не у модели.
*/