У меня есть сотрудник, которому нужен метод, который будет доступен для двух классов.
Он решил создать новый интерфейс для реализации этими классами.
В интерфейсе есть один метод default doThis(String parameter)
У него нет других методов интерфейса, нет указаний на то, что в этот интерфейс будут добавлены другие методы.
Мне кажется, что это неправильное использование интерфейса и должно быть сделано по-другому. Т.е., возможно, класс, у которого есть метод, позволяющий другим классам использовать его с помощью объекта.
Есть ли у кого-нибудь опыт в этом вопросе, которым можно поделиться?
Я могу обновить с дополнительными разъяснениями, основываясь на ваших комментариях.
Обновление:
Вот код, и остается вопрос: действительно ли это использование метода по умолчанию или должен ли этот общий лог c быть выполнен другим способом, как класс Utilities, который выполняет сохранение в настройках?
Интерфейс:
public interface LogInCookie {
default void mapCookiesToPreferences(String cookie) {
if (cookie.contains(MiscConstants.HEADER_KEY_REFRESH)) {
String refreshToken = cookie.replace(MiscConstants.HEADER_KEY_REFRESH, StringUtils.EMPTY);
SharedPrefUtils.addPreference(SharedPrefConstants.REFRESH_TOKEN, refreshToken);
}
}
}
public class HDAccountActivity extends AbstractActivity implements LogInCookie {
private void mapCookies(List<String> mValue) {
LogInCookie.super.mapCookiesToPreferences(mValue); //ekh!
}
}
public class BaseSplashPage extends AppCompatActivity implements DialogClickedCallBack, LogInCookie {
//method which uses this
private void mapCookiesToPreferences(List<String> headers) {
int firstItemInHeader = 0;
for (String header : headers) {
String mValue = header.substring(firstItemInHeader,header.indexOf(MiscConstants.SEMICOLON));
LogInCookie.super.mapCookiesToPreferences(mValue); //ekh!
}
}
}