В моем приложении C ++ у меня есть интерфейс, который выглядит так:
class ICalculator
{
public:
virtual double calculateValue(double d) = 0;
};
У меня есть реализации этого интерфейса, которые выглядят так:
class MySpecificCalculator
{
public:
virtual double calculateValue(double d);
};
Теперь мой коллега жалуетсяэто и говорит мне, что лучше иметь метод calcValue защищенным.Таким образом, мы можем гарантировать, что вызывающие абоненты всегда проходят через интерфейс, а не через прямую реализацию.
Это правильное наблюдение?Действительно ли лучше сделать реализацию интерфейса защищенной?Или мы не можем даже сделать это частным делом?