Ну, я бы назвал этот бит:
private static Injector injector = Guice.createInjector(new Guicer());
public static void setInjector(Injector injector) {
Guicer.injector = injector;
}
глобальная переменная только для записи.
А здесь:
public static <T> T getInstance(Class<T> c) {
return injector.getInstance(c);
}
вы заменяете метод экземпляра глобальной функцией. Таким образом, у вас есть глобальная переменная, которую может написать каждый, но вы можете вызвать только один метод. Поскольку у инжектора больше интерфейса, возможно, это какой-то ограниченный фасад.
Но они являются скорее идиомами, чем шаблоном - шаблон также описывает, чего он пытается достичь с точки зрения желаемого поведения, тогда как идиома - это то, как вы делаете что-то в коде.
Если это не шаблон, который имеет очень сильную связь с одной идиомой, то невозможно реконструировать шаблоны из кода.