Web-программирование. Лекция 5. Шаблоны проектирования

Содержание

Слайд 2

ШАБЛОНЫ ПРОЕКТИРОВАНИЯ

Шаблон проектирования или паттерн (англ. design pattern) в разработке программного обеспечения

ШАБЛОНЫ ПРОЕКТИРОВАНИЯ Шаблон проектирования или паттерн (англ. design pattern) в разработке программного
— повторяемая архитектурная конструкция, представляющая собой решение проблемы проектирования в рамках некоторого часто возникающего контекста.

1970 г – архитектор Кристофер Александр, наборы шаблонов проектирования в архитектуре
1987 г – Кент Бэк и Вард Каннингем, шаблоны по разработке ПО в области графических оболочек

Слайд 3

ШАБЛОНЫ ПРОЕКТИРОВАНИЯ

+++
Снижении сложности разработки за счёт готовых абстракций для решения целого класса

ШАБЛОНЫ ПРОЕКТИРОВАНИЯ +++ Снижении сложности разработки за счёт готовых абстракций для решения
задач
Шаблон даёт решению своё имя, что облегчает коммуникацию между разработчиками, позволяя ссылаться на известные шаблоны.
За счёт шаблонов производится унификация деталей решений: модулей, элементов проекта, — снижается количество ошибок.

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

Слайд 4

ГРУППЫ ШАБЛОНОВ ПРОЕКТИРОВАНИЯ

Основные шаблоны (Fundamental)
Порождающие шаблоны (Creational)
Структурные шаблоны (Structural)
Поведенческие шаблоны (Behavioral)

ГРУППЫ ШАБЛОНОВ ПРОЕКТИРОВАНИЯ Основные шаблоны (Fundamental) Порождающие шаблоны (Creational) Структурные шаблоны (Structural) Поведенческие шаблоны (Behavioral)

Слайд 5

ОСНОВНЫЕ ШАБЛОНЫ

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

ОСНОВНЫЕ ШАБЛОНЫ Интерфейс - общий метод для структурирования компьютерных программ для того,
их было проще понять.

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

Шаблон делегирования - объект внешне выражает некоторое поведение, но в реальности передаёт ответственность за выполнение этого поведения связанному объекту.

Слайд 6

ПОРОЖДАЮЩИЕ ШАБЛОНЫ

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

ПОРОЖДАЮЩИЕ ШАБЛОНЫ Шаблоны проектирования, которые абстрагируют процесс инстанцирования. Они позволяют сделать систему
от способа создания, композиции и представления объектов. Шаблон, порождающий классы, использует наследование, чтобы изменять инстанцируемый класс, а шаблон, порождающий объекты, делегирует инстанцирование другому объекту.

Слайд 7

ПОРОЖДАЮЩИЕ ШАБЛОНЫ

Абстрактная фабрика - класс, который представляет собой интерфейс для создания компонентов

ПОРОЖДАЮЩИЕ ШАБЛОНЫ Абстрактная фабрика - класс, который представляет собой интерфейс для создания
системы.

Прототип - определяет интерфейс создания объекта через клонирование другого объекта вместо создания через конструктор.

Слайд 8

СТРУКТУРНЫЕ ШАБЛОНЫ

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

СТРУКТУРНЫЕ ШАБЛОНЫ Определяют различные сложные структуры, которые изменяют интерфейс уже существующих объектов
его реализацию, позволяя облегчить разработку и оптимизировать программу.

Декоратор (Wrapper/Обертка) - класс, расширяющий функциональность другого класса без использования наследования.

Единая точка входа - обеспечивает унифицированный интерфейс для интерфейсов в подсистеме.

Слайд 9

ПОВЕДЕНЧЕСКИЕ ШАБЛОНЫ

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

Итератор - представляет

ПОВЕДЕНЧЕСКИЕ ШАБЛОНЫ Определяют взаимодействие между объектами, увеличивая таким образом его гибкость. Итератор
собой объект, позволяющий получить последовательный доступ к элементам объекта-агрегата без использования описаний каждого из объектов, входящих в состав агрегации.

Null Object - предотвращает нулевые указатели, предоставляя объект «по умолчанию».

Слайд 10

ШАБЛОНЫ АРХИТЕКТУРЫ СИСТЕМЫ

Model-View-Controller (MVC)
Модель-представление-контроллер
Model-View-Presenter
Model-View-View Model
Hierarchical Model-View-Controller

ШАБЛОНЫ АРХИТЕКТУРЫ СИСТЕМЫ Model-View-Controller (MVC) Модель-представление-контроллер Model-View-Presenter Model-View-View Model Hierarchical Model-View-Controller

Слайд 11

MVC

Model-View-Controller (MVC, «Модель-Представление-Контроллер», «Модель-Вид-Контроллер») — схема разделения данных приложения, пользовательского интерфейса и

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

Слайд 12

MODEL-VIEW-PRESENTER

Model-View-Presenter (MVP) — шаблон проектирования, производный от MVC, который используется в основном

MODEL-VIEW-PRESENTER Model-View-Presenter (MVP) — шаблон проектирования, производный от MVC, который используется в
для построения пользовательского интерфейса.
Элемент Presenter в данном шаблоне берёт на себя функциональность посредника (аналогично контроллеру в MVC) и отвечает за управление событиями пользовательского интерфейса (например, использование мыши) так же, как в других шаблонах обычно отвечает представление

Слайд 13

MODEL-VIEW-VIEWMODEL

MODEL-VIEW-VIEWMODEL

Слайд 14

HIERARCHICAL MODEL-VIEW-CONTROLLER

HIERARCHICAL MODEL-VIEW-CONTROLLER

Слайд 15

ЯЗЫКИ ПРОГРАММИРОВАНИЯ

3 способа реализации языков программирования:
компиляция
интерпретация
встраивание («реализация без трансляции»)

Фре́ймворк (иногда фреймво́рк; англицизм,

ЯЗЫКИ ПРОГРАММИРОВАНИЯ 3 способа реализации языков программирования: компиляция интерпретация встраивание («реализация без
неологизм от framework — каркас, структура) — программная платформа, определяющая структуру программной системы; программное обеспечение, облегчающее разработку и объединение разных компонентов большого программного проекта.

Систе́ма управле́ния содержи́мым (конте́нтом) (англ. Content management system, CMS)[1] — информационная система или компьютерная программа, используемая для обеспечения и организации совместного процесса создания, редактирования и управления содержимым, иначе — контентом (от английского content).

Слайд 16

ИНТЕГРИРОВАННАЯ СРЕДА РАЗРАБОТКИ

Интегри́рованная среда́ разрабо́тки, ИСP (англ. Integrated development environment — IDE),

ИНТЕГРИРОВАННАЯ СРЕДА РАЗРАБОТКИ Интегри́рованная среда́ разрабо́тки, ИСP (англ. Integrated development environment —
также единая среда разработки, ЕСР — комплекс программных средств, используемый программистами для разработки программного обеспечения (ПО).
Среда разработки включает в себя:
текстовый редактор,
компилятор и/или интерпретатор,
средства автоматизации сборки,
отладчик.

AptanaStudio, PyCharm