Делаете клас-сиглтон и в него кладете все что вам нужно пошарить (инициализируете все в приватном конструкторе).
public final class Singleton {
private static Singleton instance;
private final ConcurrentHashMap<UUID, Person> cache; // не static!
public Map<UUID, Person> getCache() {
return cache;
}
private Singleton() {
this.cache = new ConcurrentHashMap<>()
}
public static Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}
И использование
Map<UUID, Person> cache = Singleton.getInstance().getCache();
Ну и на почитать -
https://refactoring.guru/ru/design-patterns/single...
Вобще-то лучше избегать синглтонов, а использовать так называемую технику DI, например с использованием spring или guice (мой выбор). Но начать стоит именно с синглетонов.
Ну и конечно стандартный синглтон достаточно простой, можно еще сделать его ленивым и наворотить еще штук 20 строчек кода - тут головы взрывались на эту тему лет 10 назад.