Должны ли методы в веб-приложении быть публичными или внутренними?

В рамках веб-приложения, каковы последствия объявления доступности метода как 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.

Другие вопросы по тегам