В чем разница между библиотекой классов и фреймворком - PullRequest
17 голосов
/ 07 апреля 2009

Я весь день слышу библиотеку терминов, библиотеку базовых классов, Framework, ...
Что выделяет фреймворк и что такое библиотека базовых классов?

Ответы [ 11 ]

22 голосов
/ 07 апреля 2009

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

Это также называется принципом Голливуда (не звоните нам, мы вам звоним).

Кстати, есть и хорошая статья в Википедии на эту тему.

13 голосов
/ 07 апреля 2009

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

Термин «структура» предназначен для того, чтобы вызывать ощущение «нахождения в окружающей среде». Если бы я привел (ограниченную) аналогию с этим, я бы сказал, что библиотека классов похожа на возможность есть сыр и пить вино, тогда как рамки похожи на посещение Франции; испытывая культуру. Каркас - это структура, вокруг которой вы строите свою программу. Библиотека классов - это инструменты, которые вы используете (возможно, в рамках).

Конечно, фреймворк обычно содержит библиотеки классов. Например, в .NET есть куча библиотек классов, которые включены во всю инфраструктуру.

8 голосов
/ 10 декабря 2014

Библиотека:

Это просто коллекция из подпрограмм (функциональное программирование) или определения классов (объектно-ориентированное программирование). Причиной этого является просто повторное использование кода , то есть получение кода, уже написанного другими разработчиками. Классы или подпрограммы обычно определяют определенные операции в определенной области домена . Например, есть несколько библиотек математики, которые могут позволить разработчику просто вызвать функцию без повторения реализации того, как работает алгоритм.

Framework:

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

Библиотека, Framework и представление вашего кода:

Library,Framework and your Code image relation

KeyDifference:

Ключевое различие между библиотекой и платформой: «Инверсия управления» . Когда вы вызываете метод из библиотеки, вы находитесь под контролем. Но с фреймворком управление инвертируется: фреймворк вызывает вас . Источник.

Связь:

Они оба определили API, который используется программистами для использования. Чтобы сложить их вместе, мы можем представить библиотеку как определенную функцию приложения, каркас как скелет приложения, а API - это соединитель для их объединения. Типичный процесс разработки обычно начинается с фреймворка и заполняет функции, определенные в библиотеках, через API.

Оригинальный ответ

6 голосов
/ 07 апреля 2009

A библиотека классов обычно представляет собой DLL или пакет классов, которые можно "включить" / "в ссылку" в свое решение и использовать повторно.

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

  • например. Весна - это основа для DI. Вы пишете XML-файлы в формате, который диктуют дизайнеры, и затем среда позволяет вам получать собранные классы, не беспокоясь о том, что среда делает это.
  • Rails - это фреймворк в Ruby для веб-приложений RAD. Вы пишете только модели, контроллеры и представления, и у вас есть рабочее веб-приложение менее чем за час.
  • BCL - это набор библиотек классов, так что вам не нужно реализовывать структуры данных и часто используемые типы в .NET и просто бесплатно получать проверенные проверенные реализации, просто включив их.

Фреймворк обычно содержит несколько библиотек классов. Как всегда, термины используются неоднозначно в наше время ... но вышеизложенное представляет более распространенную интерпретацию терминов ... mine atleast:)

5 голосов
/ 07 апреля 2009

Часто вы используете библиотеки, чтобы получить определенную функциональность в своем СОБСТВЕННОМ программном обеспечении / инфраструктуре. Например, для печати штрих-кода вы должны использовать библиотеку для этого. Фреймворк абстрагирует целый класс проблем, возможно, проблему написания веб-приложений. Для этого фреймворк предоставляет «фрейм» со всеми функциями и заглушками, с которыми вы можете программировать.

4 голосов
/ 07 апреля 2009

вы называете код библиотеки классов где фреймворк вызывает твой код

4 голосов
/ 07 апреля 2009

Библиотека классов - это просто набор классов, инкапсулированных в определимую единицу, такую ​​как сборка. Термин не ограничен каким-либо конкретным языком или рамками.

Библиотека базовых классов (BCL) - это особые атрибуты терминов для набора библиотек классов, которые предустановлены в .NET Framework и предоставляют классы, аккуратно организованные в пространства имен, чтобы у вас был API против чего строить свои собственные решения.

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

2 голосов
/ 07 апреля 2009

Я бы сказал, что они довольно взаимозаменяемы ... - это просто набор общего повторно используемого кода (на любой платформе, на которую вы нацелены), обычно предоставляемой платформой.

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

1 голос
/ 07 апреля 2009

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

Хотя я никогда не замечал фразу " base library class", я ожидал бы, что такая вещь будет содержать абстрактные классы, предназначенные для использования в подклассах перед использованием.

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

0 голосов
/ 05 июня 2016

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

Проще говоря, если вы строите здание, то его каркасная структура, форма, функции, которые он может поддерживать, электрическое и гидравлическое проектирование, рамы и т. Д. - все это является его основой, и теперь вы должны работать в этой структуре, чтобы сделать ваше здание все заботы о создании сейсмостойкой конструкции или о строительстве линейно возводимого здания были обработаны вашей конструкцией

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

Разница между Application Framework и библиотеками: вы используете библиотеку классов при написании своего кода, но вы программируете в рамках.

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