Я работаю над проектом MVVM, поэтому у меня есть папки в моем проекте, такие как Models, ViewModels, Windows и т. Д. Каждый раз, когда я создаю новый класс, Visual Studio автоматически добавляет имя папки в обозначение пространства имен, а не просто сохраняет проект. level пространство имен. Таким образом, добавление нового класса в папку ViewModels приведет к пространству имен MyProject.ViewModels вместо просто MyProject.
Когда я впервые столкнулся с этим, меня это раздражало. Имена моих классов довольно ясны, иногда даже содержат имя папки в них (например, ContactViewModel). Я быстро обнаружил, что вручную удаляю имя папки в пространствах имен. Я даже однажды попытался создать собственный шаблон класса (см. этот вопрос), но я не мог заставить это работать, поэтому продолжал делать это вручную.
Однако я начал задаваться вопросом, существует ли это соглашение по уважительной причине, которую я просто не вижу. Я мог бы видеть это полезным, если бы у вас по какой-то причине было много наборов идентичных имен классов, организованных в папки, но это не похоже на особенно распространенный сценарий.
Вопросы:
- Почему существует общепринятое соглашение, согласно которому имена пространств имен отражают структуру папок?
- Вы соблюдаете это соглашение? Почему?