В моем проекте мне нужно создавать объекты для каждого вида Java Math Operator, такие как "Добавить", "Подстановка", "Умножение" и т.д. И эти операторы должны быть одноточечными.
Итак, вот что я собираюсь делать. Я определяю Math Operator как интерфейс, и я помещаю эти реализации внутри него, поскольку я не хочу определять одноэлементные классы для каждого оператора.
public interface MathOperator {
double operate(double a, double b);
MathOperator ADD = new MathOperator(){
@Override
public double operate(double a, double b) {
return a + b;
}
};
MathOperator SUBSTRACT = new MathOperator(){
@Override
public double operate(double a, double b) {
return a - b;
}
};
}
Я не вижу много такого использования, когда я это Google. Поэтому я задаюсь вопросом, является ли это хорошей практикой и есть ли более эффективные и более изящные подходы?