Связь файловой системы и модульной иерархии
От: x-code  
Дата: 12.10.15 08:24
Оценка:
В Java и D для реализации модульной иерархии используются имена директорий. Так, в Java для хранения пакета MyPackage необходимо создать директорию с таким именем и там хранить файлы этого пакета. Аналогично, имя исходного файла Java должно соответствовать имени хранящегося в нем класса.

В C# имена директорий и файлов никакой роли не играют, вместо этого используются явно задаваемые пространства имен как синтаксическая конструкция языка.

Лично мне интуитивно больше нравится подход C# — он более гибкий, рефакторинг может не быть связан с переименованиями в файловой системе (а значит и с контролем версий, файлами проектов и прочей внутренней механикой), потенциально можно разносить большие классы по нескольким файлам (partial классы, хотя можно пойти и дальше, разрешив например в "головном" файле предварительное объявление, а в другом файле — тело сущности, такое вполне впишется в философию языка). А в одном файле хранить несколько маленьких классов, особенно если они как-то связаны логически.

Но хотелось бы услышать и другие мнения. В общем, интересуют преимущества и недостатки обоих подходов, особенно с точки зрения людей с большим опытом в этих языках.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.