Похоже, что A является попыткой реализации шаблона singleton , но это не совсем правильно - у него должен быть собственный конструктор:
class A {
private static final A INSTANCE = new A();
private A() { }
public static A getInstance() { return INSTANCE; }
}
Это гарантирует, что только один экземплярA всегда существует в вашем приложении - если любому другому объекту нужно использовать экземпляр A, чтобы сделать что-то, единственный способ получить его - это метод getInstance()
, который все время возвращает один и тот же экземпляр.
С помощью B вы можете иметь столько экземпляров B, сколько необходимо / желательно, и любой другой объект может создать новый экземпляр B, если он выберет.