A создает B просто означает, что код внутри A напрямую создает экземпляры B - с помощью ключевого слова new
. Код может быть в конструкторах или любых методах A или в любом месте внутри A.
Причина такого отношения заключается в том, что это сильное отношение, то есть оно вызывает тесную связь между классами. Когда класс A напрямую создает экземпляры класса B, мы не можем повторно использовать A в другом контексте, где мы хотим, чтобы A создавал экземпляры дочернего класса B без изменения исходного кода A.
Чтобы иметь такую гибкость, мы часто используем шаблон Factory Method или шаблон Abstract Factory. В этих шаблонах задача непосредственного создания экземпляров принадлежит дочернему классу A (фабричный метод) или конкретному фабричному классу (абстрактная фабрика).