-
Notifications
You must be signed in to change notification settings - Fork 207
Expand file tree
/
Copy pathMemoryHandler.java
More file actions
30 lines (25 loc) · 1.02 KB
/
MemoryHandler.java
File metadata and controls
30 lines (25 loc) · 1.02 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
package com.example.task04;
import java.util.ArrayList;
public class MemoryHandler implements MessageHandler{
private final ArrayList<String> messages = new ArrayList<>();
private final MessageHandler proxyHandler; //для использования разных обработчиков для вывода
private final int messageLimit; //кол-во после которого сбрасываем сообщения
public MemoryHandler(MessageHandler proxyHandler, int messageLimit) {
this.proxyHandler = proxyHandler;
this.messageLimit = messageLimit;
}
@Override
public void log(String message) {
messages.add(message);
if (messages.size() >= messageLimit) {
explicitLog();
}
}
//метод для явного вызова и аккумулирования сообщения в памяти
public void explicitLog() {
for (String msg : messages) {
proxyHandler.log(msg);
}
messages.clear();
}
}