В чем разница между библиотекой классов и структурой

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

Ответ 1

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

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

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

Ответ 2

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

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

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

Ответ 3

Библиотека:

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

Структура:

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

Библиотека, структура и изображение вашего кода:

Library,Framework and your Code image relation

KeyDifference:

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

Отношения:

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

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

Ответ 4

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

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

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

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

Ответ 5

Часто вы используете библиотеки, чтобы получить определенную функциональность в своем ПО/инфраструктуре OWN. Например, печатая штрих-код, вы должны использовать библиотеку для этого. Рамка абстрагирует целый класс проблем, возможно, проблему написания веб-приложений. Для этого структура предоставляет "фрейм" со всеми функциональными возможностями и заглушками, с которыми вы можете работать.

Ответ 6

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

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

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

Ответ 7

вы вызываете код библиотеки классов где в качестве кода называет ваш код

Ответ 8

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

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

Ответ 9

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

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

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

Ответ 10

Я думаю о структуре как шаблоне, который может соответствовать приложению, определенном в наборе библиотек.

Библиотека базового класса может означать несколько вещей в зависимости от контекста; он может относиться к классам, которые предназначены для вывода, который является общим подходом в рамках, или он может просто ссылаться на основную библиотеку классов, которые считаются полезными в любом приложении и поэтому считаются "базовой" потребностью, почти часть языка (например, классы контейнера).

Ответ 11

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

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

Ответ 12

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

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

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

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