Так что да, вопрос в основном говорит обо всем. Что вы получаете, когда вы гарантируете, что частные члены / методы / что-либо помечены как частные (или защищенные, или публичные, или внутренние, и т. Д.) Надлежащим образом?
Я имею в виду, конечно, я мог бы просто отметить все мои методы как публичные, и все должно работать нормально. Конечно, если бы мы поговорили о хорошей практике программирования (кстати, я твердый сторонник), я бы пометил метод как частный, если он должен быть помечен как таковой, без вопросов.
Но давайте отложим хорошую практику программирования и просто посмотрим на это с точки зрения фактического количественного прироста. Что я получу за правильное определение моих методов, членов, классов и т. Д.?
Я думаю, что в большинстве случаев это приведет к повышению производительности, но я был бы признателен, если бы кто-то мог предоставить более подробную информацию об этом.
(Для целей этого вопроса я больше думаю о C # .NET, но, эй, не стесняйтесь давать ответы на любом языке / структуре, которые вы считаете подходящими.)
РЕДАКТИРОВАТЬ : Большинство указывало, что это не приводит к увеличению производительности, и да, вспоминая, я даже не знаю, почему я так думал. Вероятно, нехватка кофе.
В любом случае любой хороший программист должен знать о том, как правильные области видимости (1) помогают обслуживанию вашего кода / (2) контролируют правильное использование вашей библиотеки / приложения / пакета; Мне было любопытно, была ли у вас какая-то другая выгода, которая явно не очевидна. Основываясь на ответах ниже, похоже, что в основном это сводится к двум наиболее важным вещам.