Каковы различия между классами, пакетами, пространствами имен и модулями? - PullRequest
0 голосов
/ 23 апреля 2019

Я пытаюсь решить, какая будет наиболее подходящая / общая терминология для ссылки на файл или группу файлов, которые определяют объект, который можно использовать повторно.Чаще всего я слышу термины «класс», «пакет», «пространство имен», «модуль», «модуль» и «компонент», но я не уверен, в чем заключаются различия или являются ли они общепринятой терминологией для разных языков.

1 Ответ

1 голос
/ 24 апреля 2019

Как правило, эти термины используются во многих различных технологиях.

Пространства имен и пакеты немного похожи в том смысле, что они обычно представляют собой «относительный путь, где хранится класс».В большинстве случаев пакет или пространство имен будут совпадать с путем, в котором находится файл (но синтаксис может отличаться).

Класс - это структура данных, единица кода, которая выполняет что-то конкретноелогично.Разбивка вашего кода по классам с точно названными именами и помещение их в точно названные пакеты / пространства имен очень помогает, когда приходит время найти код, который вы ищете, просто взглянув на структуру вашего проекта и содержащиеся в нем файлы.Эта «архитектурная проблема» является одной из задач разработки программного обеспечения, которое легко обслуживать.

Затем, когда ваше программное обеспечение становится слишком большим, вы можете захотеть разбить ваш код на «модули».Это в основном означает, что вместо одного большого проекта, содержащего весь исходный код, вы будете «извлекать» все классы, связанные с функциональностью (например, если у вас есть поисковая система, вы можете выделить весь код для этого в другом"модуль", который в основном является другой папкой / проектом).Таким образом, вы также можете повторно использовать свою поисковую систему для другого, совершенно другого проекта, без необходимости копировать (таким образом удваивать) свой код ... это сэкономит много работы по обслуживанию, если вы внесете изменения в поисковую систему, которыеВы хотите в обоих проектах.

...