Как размещение реализации публичного метода в частном способе предотвращает нарушение работы потребителей? - PullRequest
0 голосов
/ 24 октября 2018

Этот вопрос проистекает из нескольких связанных вопросов и в некоторой степени напоминает первый, который, похоже, не дает четкого ответа на главный вопрос ФП:

Я очень четко понимаю назначение частных методов, ноМне трудно думать о примере, где реализация функции в частном методе не вызовет проблем для потребителя API, но размещение реализации непосредственно в открытом методе будет.Это обычная практика в API-интерфейсах Java.

По сути, я снова задаю первый вопрос выше, потому что не прочитал ответ, который укрепляет мое понимание.Возьмем тот же пример:

public class Sum {

    private int sum(int a, int b){
        return a + b;
    }

    public int getSum(int a, int b){
        return sum(a, b);
    }

}

В чем преимущество использования функции private sum вместо простого помещения результата непосредственно в public-функцию?

public int getSum(int a, int b) {
    return a + b;
}

Возможно, это не такЭто лучший пример, но я очень приветствую более сложные или реальные примеры.

Опять же, я понимаю, что размещение реализации в частном методе скрывает реализацию и допускает повторное использование и в целомлучшая практика для будущих дополнений.Тем не менее,

  • Как не , использующий его в частном методе, может нарушить работу пользователей API?
  • Должны ли все публичные методы быть созданы таким образом (всегда помещайте реализацию в приватный метод), или где нарисована линия?

1 Ответ

0 голосов
/ 24 октября 2018

Размещение реализации в приватных методах, как вы показали, не имеет никакого значения.

Я полагаю, что этот вопрос ошибочно определил связь между «интерфейсом <-> реализацией метода» и «открытым методом <-> приватным методом».

Важно то, что интерфейс отделяется от реализации,Потребитель видит только интерфейс.Поставщик функции выбирает / внедряет соответствующую реализацию.

...