У меня есть интерфейс с его реализацией.Методы открытого интерфейса используют много частных методов для выполнения вычислений:
public class FooServiceImpl implements FooService {
@Override
public void method1() {
calc1();
calc2();
...
...
}
@Override
public void method2() {
calc1();
calc2();
...
...
}
private Double calc1() {
...
...
}
private Double calc2() {
...
...
}
...
...
}
Для лучшего обзора я разделил методы открытого интерфейса и служебные методы, переместив их в абстрактный класс:
public class FooServiceImpl extends AbstractFooService implements FooService {
@Override
public void method1() {
calc1();
calc2();
...
...
}
@Override
public void method2() {
calc1();
calc2();
...
...
}
}
.
public abstract class AbstractFooService {
Double calc1() {
...
...
}
Double calc2() {
...
...
}
...
...
}
Это законный образец или плохая практика?