Есть ли предпочтительный метод или стиль создания реализации по умолчанию для методов интерфейса? Предположим, у меня был широко используемый интерфейс, где в 90% случаев функциональность, которую я хотел, была идентичной.
Мой первый инстинкт - создать конкретный класс со статическими методами. Затем я бы делегировал функции статическим методам, когда мне нужна функциональность по умолчанию.
Вот простой пример:
Интерфейс
public interface StuffDoer{
public abstract void doStuff();
}
Конкретная реализация методов
public class ConcreteStuffDoer{
public static void doStuff(){
dosomestuff...
}
}
Конкретная реализация с использованием стандартных функций
public class MyClass implements StuffDoer{
public void doStuff(){
ConcreteSuffDoer.doStuff();
}
}
Есть ли лучший подход здесь?
ИЗМЕНИТЬ
Увидев несколько предложенных решений, я думаю, что я должен более четко рассказать о своих намерениях. По сути, я пытаюсь работать над Java, не допуская множественного наследования. Также, чтобы быть ясным, я не пытаюсь сделать выражение о том, должна ли Java разрешать множественное наследование. Я просто ищу лучший способ создания реализации метода по умолчанию для классов, реализующих интерфейс.