На самом деле можно создать ярлык, чтобы вы могли использовать более короткие имена в своем коде, выполнив что-то вроде этого:
package com.mycompany.installer;
public abstract class ConfigurationReader {
private static class Implementation extends com.mycompany.installer.implementation.ConfigurationReader {}
public abstract String getLoaderVirtualClassPath();
public static QueryServiceConfigurationReader getInstance() {
return new Implementation();
}
}
Таким образом вам нужно только указать длинное имя один раз и вы можете иметь столько специально названных классов, которые вы хотите.
Другое, что мне нравится в этом шаблоне, это то, что вы можете назвать класс реализации таким же, как абстрактный базовый класс, и просто поместить его в другое пространство имен. Это не связано с шаблоном импорта / переименования.