В чем разница между библиотекой, фреймворком и API? Все они кажутся мне одинаковыми. Я хотел бы услышать, что люди думают об этом.
В чем разница между библиотекой, фреймворком и API? Все они кажутся мне одинаковыми. Я хотел бы услышать, что люди думают об этом.
Ответы:
Библиотека - это набор функций / объектов, которые служат одной конкретной цели. Вы можете использовать библиотеку в различных проектах.
Фреймворк - это набор шаблонов и библиотек, помогающих создавать приложения.
API - это интерфейс для взаимодействия других программ с вашей программой без прямого доступа.
Говоря иначе, представьте, что библиотека - это надстройка / часть приложения, инфраструктура - это каркас приложения, а API - часть этого приложения, обращенная наружу.
Хорошие ответы пока что, но они упускают один ключевой момент - фреймворк использует IoC . Ваш код окружен фреймворком. Он живет внутри. Напротив, ваш код просто использует библиотеку или API. Он живет за его пределами. IoC это разница.
Библиотека - это набор кода, созданный для выполнения общих задач. Библиотечный код имеет тенденцию быть относительно стабильным и без ошибок. Использование соответствующих библиотек может уменьшить объем кода, который необходимо написать. Это приведет к уменьшению количества строк кода для приложения, что увеличит скорость, с которой предоставляется функциональность. В большинстве случаев лучше использовать библиотечную процедуру, чем писать собственный код.
API (интерфейс прикладного программирования) - это интерфейс к некоторым функциям, который позволяет приложению получать доступ к доступным функциям. API может упоминаться как интерфейс. API существует на многих уровнях, включая систему, библиотеку, инфраструктуру, программу и приложение. API должны быть определены до того, как код, реализующий их, будет реализован.
API должны быть стабильными, хотя некоторые части API могут быть устаревшими по разным причинам. Чем шире используется API, тем сложнее его изменить. Большинство, если не все, API Java 1.0 все еще доступны, хотя многие методы устарели.
Framework - это набор API-интерфейсов, предназначенных для упрощения создания приложений. Фреймворки предоставляют реализации для повторно используемых компонентов. Хорошие фреймворки, как правило, специализируются на их применении.
Java Collections Framework - это набор API для различных типов объектов, которые можно использовать для обработки коллекций. Он предоставляет иерархию API для различных коллекций. В Java Collections Framework интерфейс SortedSet расширяет интерфейс Set, который, в свою очередь, расширяет интерфейс Collection. Эти API являются абстрактными интерфейсами, а фактические реализации имеют разные имена. Платформа коллекций делает реализацию коллекций простой и упрощает изменение реализаций во время разработки.
Фреймворки могут быть построены из более мелких фреймворков, как это видно из Java Spring Framework, нацеленного на разработку J2EE. Spring состоит из более чем дюжины каркасов, многие из которых могут использоваться самостоятельно или заменяться другими каркасами.
Использование соответствующих библиотек, API и каркасов может упростить разработку. Эти компоненты решают общие проблемы и позволяют команде разработчиков сосредоточиться на конкретных проблемах приложения.
Фреймворк - это шаг вперед по сравнению с библиотекой. Если ваш инструментарий представляет собой библиотеку, то ваш семинар станет основой.
Википедия говорит
API - это абстракция, которая описывает интерфейс для взаимодействия с набором функций, используемых компонентами программной системы.
Важное различие между API и пользовательским интерфейсом состоит в том, что API позволяет другим программным средствам / службам программно взаимодействовать с вашим решением.
API могут быть созданы как для приложений (через dll или плагины), так и для веб-сайтов и сервисов (через REST и веб-сервисы)
API определяют, как использовать что-то еще с точки зрения того, какие объекты и методы можно использовать из источника. Например, интеграция Twitter или Facebook в сайт использует API из Twitter или Facebook, чтобы обеспечить обновление нужных данных.
Фреймворки имеют тенденцию быть немного громоздкими в некотором смысле, так как иногда они могут сформировать свой собственный язык. jQuery - пример фреймворка, который имеет собственный синтаксис и в некотором смысле имеет немного больший вес с точки зрения проникновения в мой код. Фреймворки также могут быть платформами, которые в некотором смысле делают их похожими на API-интерфейсы, например, Win32API или .Net Framework имеют множество методов для создания приложения, поэтому могут быть Frameworks с API-интерфейсами и API-интерфейсами, которые также рассматриваются как Frameworks.
Библиотеки, как правило, представляют собой двоичные файлы, которые реализуют API или Framework, и поэтому они являются битами, которые вам необходимо использовать в некоторых случаях для API или Framework. По крайней мере, так я вижу эти термины и различия между ними.
Пойдите в библиотеку и начните читать книги. Если вы приложение, тогда коллекция книг - это библиотека. Полки, шкафы и комплекс, в котором находится все это, составляют основу. Все, с чем вы сталкиваетесь при выполнении задания по чтению книг, - это API.
Библиотека - это набор кода, который используется для упрощения общих задач - это могут быть классы, функции или что-то конкретное для вашего языка или платформы. Хорошим примером может служить библиотека для работы со строками, которая предоставляет помощников для выполнения общих задач (сборка, разбиение, поиск или сортировка строк и т. Д.).
API (интерфейс прикладного программирования) - это определение («интерфейс») того, как работать с другим приложением, системой или технологией. По сути, он определяет операции, доступные для взаимодействия с этой другой системой. API может быть библиотекой (это означает, что API обернут в библиотеку или набор классов), но различие заключается в том, что API всегда ссылается на внешнюю систему - будь то база данных, веб-служба, другое приложение или операционная система. сам.
Платформа представляет собой более широкую концепцию - она обычно содержит ряд библиотек и API для выполнения общих задач. Он существует на более высоком концептуальном уровне - это не просто набор инструментов, но и набор шаблонов проектирования, лучших практик и методологий. Программный каркас является расширением общего каркаса - его значения включают в себя быть основой, на которой строятся вещи, предоставляя поддержку и структуру, а также предоставляя рекомендации и определения к требованиям.
Приложение разработано с использованием библиотек на основе платформы и взаимодействует через API.
Если вы создаете приложение, скажем, приложение для обработки изображений в Интернете,
Когда звонок поступает на ваше приложение
вызывающему человеку
причины, по которым они существуют: