На самом деле эти термины могут означать много разных вещей в зависимости от контекста, в котором они используются.
Например, в Mac OS X фреймворки - это просто библиотеки, упакованные в связку. В комплекте вы найдете настоящую динамическую библиотеку (libWhatever.dylib). Разница между простой библиотекой и фреймворком на Mac заключается в том, что фреймворк может содержать несколько разных версий библиотеки. Он может содержать дополнительные ресурсы (изображения, локализованные строки, файлы данных XML, объекты пользовательского интерфейса и т. Д.), И, если фреймворк не выпущен в открытый доступ, он обычно содержит файлы .h, необходимые для использования библиотеки.
Таким образом, у вас есть все в одном пакете, который вам нужен для использования библиотеки в вашем приложении (библиотека C / C ++ / Objective-C без файлов .h довольно бесполезна, если вы сами не напишете их в соответствии с какой-либо библиотечной документацией) вместо куча файлов для перемещения (пакет Mac - это просто каталог на уровне Unix, но пользовательский интерфейс обрабатывает его как один файл, почти так же, как у вас есть файлы JAR в Java, и когда вы щелкаете по нему, вы обычно не видите что внутри, если вы явно не выбрали отображение содержимого).
Википедия называет фреймворк «модным словом». Он определяет программную структуру как
Программная структура - это многократно используемый дизайн программной системы (или подсистемы). Программная структура может включать вспомогательные программы, библиотеки кода, язык сценариев или другое программное обеспечение, помогающее разрабатывать и склеивать вместе различные компоненты программного проекта. Различные части фреймворка могут быть доступны через API.
Поэтому я бы сказал, что библиотека - это просто «библиотека». Это набор объектов / функций / методов (в зависимости от вашего языка), и ваше приложение «связывает» с ним и, таким образом, может использовать объекты / функции / методы. По сути, это файл, содержащий повторно используемый код, который обычно может использоваться несколькими приложениями (вам не нужно писать один и тот же код снова и снова).
Фреймворком может быть все, что вы используете при разработке приложений. Это может быть библиотека, набор из множества библиотек, набор скриптов или любое программное обеспечение, необходимое для создания вашего приложения. Рамки - это очень расплывчатый термин.
Вот статья о каком-то парне по теме "Библиотека против фреймворка". Я лично считаю эту статью весьма спорной. В том, что он там говорит, нет ничего плохого, однако он просто выбирает одно из множества определений фреймворка и сравнивает его с классическим определением библиотеки. Например. он говорит, что вам нужна основа для разделения на подклассы. Действительно? У меня может быть объект, определенный в библиотеке, я могу связать его с ним и подклассифицировать его в моем коде. Я не понимаю, зачем мне для этого нужен «каркас». В некотором роде он скорее объясняет, как термин «структура» используется в настоящее время. Как я уже сказал, это просто раздутое слово. Некоторые компании выпускают просто обычную библиотеку (в любом смысле классическую библиотеку) и называют ее «фреймворком», потому что это звучит более модно.
person
Mecki
schedule
29.09.2008