Платформа по сравнению с инструментарием по сравнению с библиотекой [дубликат]

299
задан nhgrif 21 July 2015 в 06:23
поделиться

4 ответа

Самым важным отличием, и фактически определяющим различием между библиотекой и фреймворком является инверсия управления .

Что это значит? Что ж, это означает, что когда вы вызываете библиотеку, вы контролируете ее. Но с фреймворком управление перевернуто: фреймворк зовет вас. (Это называется голливудским принципом: не звоните нам, мы позвоним вам.) Это в значительной степени определение структуры. Если у него нет инверсии управления, это не фреймворк. (Я смотрю на вас, .NET!)

По сути, весь поток управления уже находится во фреймворке, и есть только набор предопределенных белых пятен, которые вы можете заполнить своим кодом.

С другой стороны, библиотека - это набор функций, которые вы можете вызывать.

Я не знаю, правильно ли определен термин «инструментарий». Само слово «комплект», кажется, предполагает некую модульность, то есть набор независимых библиотек, из которых вы можете выбирать. Что же тогда отличает инструментарий от набора независимых библиотек? Интеграция: если у вас просто несколько независимых библиотек, нет гарантии, что они будут хорошо работать вместе, тогда как библиотеки в наборе инструментов были разработаны для совместной работы - вам просто не нужно использовать all из них.

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

450
ответ дан 23 November 2019 в 01:29
поделиться

Библиотека - это просто набор методов / функций, заключенных в пакет, который можно импортировать в проект кода и использовать повторно.

Фреймворк - это надежная библиотека или набор библиотек, которые обеспечивают «основу» вашего кода. Фреймворк следует паттерну «инверсия управления». Например, платформа .NET - это большой набор связанных библиотек, на основе которых вы создаете свое приложение. Вы можете утверждать, что между фреймворком и библиотекой нет большой разницы, но когда люди говорят «фреймворк», это обычно подразумевает более крупный и надежный набор библиотек, которые будут играть неотъемлемую часть приложения.

Я думаю о наборе инструментов так же, как я думаю о SDK. Он поставляется с документацией, примерами, библиотеками, оболочками и т. Д. Опять же, вы можете сказать, что это то же самое, что и фреймворк, и, вероятно, поступите правильно.

Почти все они могут использоваться как взаимозаменяемые.

13
ответ дан 23 November 2019 в 01:29
поделиться

очень, очень похожи, фреймворк обычно немного более развит и завершен, чем библиотека, а набор инструментов может быть просто набором подобных библиотек и фреймворков.

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

5
ответ дан 23 November 2019 в 01:29
поделиться

Мартин Фаулер обсуждает разницу между библиотекой и фреймворком в своей статье Инверсия контроля:

Инверсия контроля - ключевая часть того. того, что отличает фреймворк от библиотека. Библиотека, по сути, является набор функций, которые вы можете вызывать, в наши дни обычно организованных в классы. Каждый вызов выполняет определенную работу и возвращает управление клиенту.

Фреймворк воплощает некую абстрактную конструкцию, в которую встроены дополнительные функции. Чтобы использовать его, вам нужно вставить ваше поведение в различные места в фреймворке либо путем подклассификации, либо подключая свои собственные классы. Код код фреймворка затем вызывает ваш код в этих местах.

Подводя итог: ваш код вызывает библиотеку, а фреймворк вызывает ваш код.

122
ответ дан 23 November 2019 в 01:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: