Презентация на тему: Design Patterns. Introduction

Реклама. Продолжение ниже
Design Patterns. Introduction
Программа курса
История создания
История создания
История создания
История создания
История создания
Таксономия паттернов
Что такое шаблоны проектирования?
Что такое шаблоны проектирования?
Пример паттерна – Singleton
Диаграмма класса Singleton
Код примера реализации Singleton
Код примера на С++
Код примера на Java
Код примера на PHP4
Польза
Недостатки
Итоги
1/19
Средняя оценка: 4.5/5 (всего оценок: 98)
Код скопирован в буфер обмена
Скачать (123 Кб)
Реклама. Продолжение ниже
1

Первый слайд презентации: Design Patterns. Introduction

Немчинский Сергей 2008 pro100fox@gmail.com

Изображение слайда
1/1
2

Слайд 2: Программа курса

История создания Что такое шаблоны проектирования? Немного про ООП Шаблоны GRASP Шаблоны GoF Немного о рефакторинге Лабораторная работа

Изображение слайда
1/1
3

Слайд 3: История создания

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

Изображение слайда
1/1
4

Слайд 4: История создания

В 1987 году Кент Бэк (Kent Beck) и Вард Каннигем (Ward Cunningham) взяли идеи Кристофер Александра и разработали шаблоны применительно к разработке программного обеспечения для разработки графических оболочек на языке Smalltalk.

Изображение слайда
1/1
5

Слайд 5: История создания

В 1988 году Эрих Гамма (Erich Gamma) начал писать докторскую работу при цюрихском университете об общей переносимости этой методики на разработку программ.

Изображение слайда
1/1
6

Слайд 6: История создания

В 1989—1991 годах Джеймс Коплин (James Coplien) трудился над разработкой идиом для программирования на C++ и опубликовал в 1991 году книгу Advanced C++ Idioms.

Изображение слайда
1/1
7

Слайд 7: История создания

В этом же году Эрих Гамма заканчивает свою докторскую работу и переезжает в США, где в сотрудничестве с Ричардом Хелмом (Richard Helm), Ральфом Джонсоном (Ralph Johnson) и Джоном Влиссидсом (John Vlissides) публикует книгу Design Patterns — Elements of Reusable Object-Oriented Software. В этой книге описаны 23 шаблона проектирования. Также команда авторов этой книги известна общественности под названием Банда четырёх (англ. Gang of Four, часто сокращается до GoF ). Именно эта книга стала причиной роста популярности шаблонов проектирования.

Изображение слайда
1/1
Реклама. Продолжение ниже
8

Слайд 8: Таксономия паттернов

Idiom Напрямую связана с языком программирования Specific design Решение частной задачи Standard design Дополнительный уровень абстракции Design pattern Объектно-ориентированные шаблоны – отношения, взаимодействие и распределение ответственности между классами или объектами для всего класса задач

Изображение слайда
1/1
9

Слайд 9: Что такое шаблоны проектирования?

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

Изображение слайда
1/1
10

Слайд 10: Что такое шаблоны проектирования?

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

Изображение слайда
1/1
11

Слайд 11: Пример паттерна – Singleton

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

Изображение слайда
1/1
12

Слайд 12: Диаграмма класса Singleton

Изображение слайда
Изображение для работы со слайдом
1/2
13

Слайд 13: Код примера реализации Singleton

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

Изображение слайда
1/1
14

Слайд 14: Код примера на С++

#ifndef __TEST_SINGLETON_HPP #define __TEST_SINGLETON_HPP class Singleton { public: static Singleton * getInstance(); private: Singleton(); static Singleton * instance_; }; #endif #include "sing.hpp" Singleton * Singleton::instance_ = 0; Singleton::Singleton() { } Singleton * Singleton::getInstance() { if(!instance_) { instance_ = new Singleton; } return instance_; }

Изображение слайда
1/1
Реклама. Продолжение ниже
15

Слайд 15: Код примера на Java

public class MySingleton { private static MySingleton i nstance = new MySingleton(); private MySingleton () { } public static MySingleton getInstance() { return i nstance; } }

Изображение слайда
1/1
16

Слайд 16: Код примера на PHP4

<?php class Singleton { function Singleton( $directCall = true ) { if ( $directCall ) { trigger_error("Нельзя использовать конструктор для создания класса Singleton. Используйте статический метод getInstance ()",E_USER_ERROR); } //TODO: Добавьте основной код конструктора здесь } function &getInstance() { static $instance; if ( !is_object( $instance ) ) { $instance = new Singleton( false ); } return $instance; } } ?>

Изображение слайда
1/1
17

Слайд 17: Польза

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

Изображение слайда
1/1
18

Слайд 18: Недостатки

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

Изображение слайда
1/1
19

Последний слайд презентации: Design Patterns. Introduction: Итоги

Шаблоны проектирования (паттерн, pattern) — это эффективные способы решения характерных задач проектирования; Шаблоны - не являются законченным образцом проекта, они лишь способ решения, «повод подумать»; Шаблоны - не панацея, но дают возможность сильно повысить свой уровень разработчика, использовать лучший опыт; Шаблоны – ступенька к становлению Computer Science как науки, а не ремесленечества.

Изображение слайда
1/1
Реклама. Продолжение ниже