Должны ли методы в веб-приложении быть публичными или внутренними?
В рамках веб-приложения, каковы последствия объявления доступности метода как public
против internal
?
Веб-приложения обычно содержат методы, используемые только внутри самого приложения. Например, веб-сайт электронной коммерции может содержать метод для извлечения истории заказов пользователя. По линии:
public List<Orders> RetrieveOrders() {
//code goes here
}
Если этот метод содержался в библиотеке классов, значение public
а также internal
модификаторы доступа довольно просты; публичные методы будут доступны вне самой библиотеки, а внутренние методы - нет.
Есть ли практическая разница, когда дело доходит до веб-приложений?
РЕДАКТИРОВАТЬ: мой вопрос было предложено быть дубликатом В чем разница между публичным, частным, защищенным и ничего?, Я не прошу объяснения модификаторов доступа. Я спрашиваю, есть ли какое-либо значение для модификаторов доступа в методах на веб-сайте специально.
1 ответ
В общем public
должен быть ограничен внешне видимыми методами - это включает в себя общедоступный API и методы, которые должны быть подвержены техническим ограничениям (например, классы для страниц ASP.Net).
В случае с веб-приложением, как правило, отсутствует "публичный API", поскольку такие библиотеки обычно не используются внешними пользователями.
Так что в основном нет практических различий между internal
а также public
для разработки веб-приложений. Вы получаете небольшое удобство для использования только public
как вам больше не нужно иметь InternalsVisibleTo
атрибуты для юнит-тестов.
Дополнительные обсуждения: публичные и внутренние методы внутреннего класса, внутренние и публичные в C#
Примечание: веб-сайт ASP.Net MVC является библиотекой классов, поэтому все обсуждения модификаторов доступа, связанных с библиотеками классов, относятся к сайтам ASP.Net MVC/WebAPI.