Interested Article - Фреймворк
- 2020-10-30
- 1
Фре́ймворк ; иногда фреймво́рк ( англицизм , неологизм от framework « остов , каркас, рама; структура») — программная платформа, определяющая структуру программной системы; программное обеспечение , облегчающее разработку и объединение разных компонентов большого программного проекта.
Употребляется также слово каркас (а некоторые авторы используют его в качестве основного) в том числе не базируясь вообще на англоязычном аналоге . Можно также говорить о как о подходе к построению программ, где любая конфигурация программы строится из двух частей:
- Постоянная часть — каркас, не меняющийся от конфигурации к конфигурации и несущий в себе гнёзда, в которых размещается вторая, переменная часть;
- Сменные модули (или точки расширения).
Отличие от библиотеки
Фреймворк отличается от понятия библиотеки тем, что последняя может быть использована в программном продукте просто как набор подпрограмм похожей функциональности, не влияя на архитектуру программного продукта и не накладывая на неё никаких ограничений. В то время как фреймворк диктует правила построения архитектуры приложения, задавая на начальном этапе разработки поведение по умолчанию — «каркас», который нужно будет расширять и изменять согласно указанным требованиям. Пример программного фреймворка — 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 .
Фреймворк концептуальной модели
Абстрактное понятие структуры, которое используется в исследованиях для определения возможных способов решения проблемы или представления идеи.
Реализация фреймворка
«Фреймворк» определяется как множество конкретных и абстрактных классов , а также определений способов их взаимоотношения. Конкретные классы обычно реализуют взаимные отношения между классами. Абстрактные классы представляют собой точки расширения , в которых каркасы могут быть использованы или адаптированы.
Точка расширения — это та «часть» фреймворка, для которой не приведена реализация. Соответственно, каркас концептуальной модели состоит из , а каркас программной системы — из классов языка программирования общего назначения.
Процесс создания фреймворка заключается в выборе подмножества задач проблемы и их реализаций. В ходе реализаций общие средства решения задач заключаются в конкретных классах, а изменяемые средства — выносятся в точки расширения.
См. также
Примечания
- В. Фаронов. Создание приложений с помощью C#, Москва, ЭКСМО, 2008, с. 12
- от 3 августа 2009 на Wayback Machine , Институт системного программирования РАН
- ↑ . — М. : Полиптих, 1999. — 336 с. — ISBN 5-901-11801-4 . 20 сентября 2012 года.
- Martin Fowler. (англ.) . Дата обращения: 5 ноября 2013. 23 января 2011 года.
- 2020-10-30
- 1