Interested Article - Фреймворк

Фре́ймворк ; иногда фреймво́рк ( англицизм , неологизм от framework « остов , каркас, рама; структура») — программная платформа, определяющая структуру программной системы; программное обеспечение , облегчающее разработку и объединение разных компонентов большого программного проекта.

Употребляется также слово каркас (а некоторые авторы используют его в качестве основного) в том числе не базируясь вообще на англоязычном аналоге . Можно также говорить о как о подходе к построению программ, где любая конфигурация программы строится из двух частей:

  1. Постоянная часть — каркас, не меняющийся от конфигурации к конфигурации и несущий в себе гнёзда, в которых размещается вторая, переменная часть;
  2. Сменные модули (или точки расширения).

Отличие от библиотеки

Фреймворк отличается от понятия библиотеки тем, что последняя может быть использована в программном продукте просто как набор подпрограмм похожей функциональности, не влияя на архитектуру программного продукта и не накладывая на неё никаких ограничений. В то время как фреймворк диктует правила построения архитектуры приложения, задавая на начальном этапе разработки поведение по умолчанию — «каркас», который нужно будет расширять и изменять согласно указанным требованиям. Пример программного фреймворка — C.M.F. ( Content Management Framework ), а пример библиотеки — модуль электронной почты .

Также, в отличие от библиотеки, которая объединяет в себе набор близкой функциональности, — «фреймворк» может содержать в себе большое число разных по тематике библиотек.

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

Фреймворк программной системы

Это каркас программной системы (или подсистемы). Может включать: вспомогательные программы, библиотеки кода, язык сценариев и другое ПО , облегчающее разработку и объединение разных компонентов большого программного проекта. Обычно объединение происходит за счёт использования единого API .

Примеры: веб-фреймворки , как PHP-фреймворки Zend Framework, Laravel или Symfony , или Django , написанный на Python .

Фреймворк приложения

Одно из главных преимуществ при использовании «каркасных» приложений — «стандартность» структуры приложения. «Каркасы» стали популярны с появлением графических интерфейсов пользователя , которые имели тенденцию к реализации стандартной структуры для приложений. С их использованием стало гораздо проще создавать средства для автоматического создания графических интерфейсов, так как структура внутренней реализации кода приложения стала известна заранее. Для обеспечения каркаса обычно используются техники объектно-ориентированного программирования (например, части приложения могут наследоваться от базовых классов фреймворка).

Одним из первых коммерческих фреймворков приложения был , написанный Apple для « Macintosh ». Первоначально созданный с помощью расширенной (объектно-ориентированной) версии языка « Object Pascal », впоследствии он был переписан на « C++ ». Другие популярные каркасы для «Macintosh» включали:

  • Metrowerks и (все основаны на );
  • от NeXT .

В различной степени фреймворки приложения представляют собой « Cocoa » для Mac OS X , а также свободные фреймворки, существующие как часть проектов Mozilla , OpenOffice.org , GNOME и KDE .

Microsoft создала похожий продукт для « Windows », который называется Microsoft Foundation Classes (MFC). На данный момент основным продуктом Microsoft для разработки ПО предлагается « .NET ».

Кроссплатформенными каркасами приложений (для операционных систем « Linux », «Macintosh» и «Windows») являются, например, , wxWidgets , Qt , .NET , или FOX toolkit .

Фреймворк концептуальной модели

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

Реализация фреймворка

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

Точка расширения — это та «часть» фреймворка, для которой не приведена реализация. Соответственно, каркас концептуальной модели состоит из , а каркас программной системы — из классов языка программирования общего назначения.

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

См. также

Примечания

  1. В. Фаронов. Создание приложений с помощью C#, Москва, ЭКСМО, 2008, с. 12
  2. от 3 августа 2009 на Wayback Machine , Институт системного программирования РАН
  3. . — М. : Полиптих, 1999. — 336 с. — ISBN 5-901-11801-4 . 20 сентября 2012 года.
  4. Martin Fowler. (англ.) . Дата обращения: 5 ноября 2013. 23 января 2011 года.
Источник —

Same as Фреймворк