У меня есть класс, который содержит список подключенных клиентов, причем их имена пользователей являются ключом, а экземпляр клиента - значением. До сих пор класс выглядит следующим образом:Лучший способ сохранить список значений в Java
public class ClientList {
private static HashMap<String, Client> clients = new HashMap<>();
/**
* Add a client to the list of connected clients
*
* @param username Unique client key
* @param client The client to add to the list
*/
public static void add(String username, Client client) {
clients.put(username, client);
}
/**
* Remove a client from the list
*
* @param username the client to remove
*/
public static void remove(String username) {
clients.remove(username);
}
/**
* Get the client in the list that has the given username
*
* @param username The username of the client to return
* @return The client with a matching username
*/
public static Client getClient(String username) {
return clients.get(username);
}
/**
* @return The client list
*/
public static HashMap<String, Client> getList() {
return clients;
}
}
Однако при рассмотрении класса я понял, все эти методы просто передавая Params к HashMap
классу, то есть ClientList
класса не приносит ничего нового в программу. Теперь из-за этого я знаю, что могу просто создать статический HashMap<String, Client>
где-нибудь и использовать его, не создавая для него совершенно новый класс; моя проблема: у меня нет подходящих классов для хранения списка, например, для моего класса ClientListener
для доступа к списку. Я не хочу статически обращаться к классу с нерелевантным именем, например ClientWriter.clientList
. Итак, мой вопрос: какой лучший способ обработки этой карты, где она поддерживает удобство чтения?
Прежде всего, прекратить использование 'static', где это не нужно. –
@SotiriosDelimanolis Список клиентов статичен, потому что я не хочу создавать какие-либо новые экземпляры. Какой подход я должен использовать вместо этого? – JamoBox
_I не хочу создавать какие-либо новые экземпляры it_, не является хорошей причиной не создавать новые экземпляры. –