Разделы презентаций


Шаблоны проектирования

Содержание

Обязанности классовОбязанность (responsibility) – это контракт или обязательство класса:Обязанность знания (knowing). Реализуется методами доступа (не изменяется состояние объекта). Объект предоставляет:информацию о закрытых инкапсулированных данныхинформацию о связанных (агрегируемых) объектахрезультаты вычисленийОбязанность действия (doing).

Слайды и текст этой презентации

Слайд 1Технология программирования
Шаблоны проектирования

Технология программированияШаблоны проектирования

Слайд 2Обязанности классов
Обязанность (responsibility) – это контракт или обязательство класса:
Обязанность знания

(knowing). Реализуется методами доступа (не изменяется состояние объекта). Объект предоставляет:
информацию

о закрытых инкапсулированных данных
информацию о связанных (агрегируемых) объектах
результаты вычислений
Обязанность действия (doing). Реализуется методами управления и реализации (изменяют состояние)
выполнение действий над самими объектами
инициация действий, выполняемых другими объектами
координация других объектов

Шаблон проектирования (design pattern) – это готовое решение для часто встречающихся задач. Шаблон описывает распределение обязанностей классов и объектов в определенной ситуации.
Порождающие шаблоны. Описывают ЧТО создается, КЕМ создается, КАК создается и КОГДА создается. Локализуют сведения об особенностях создаваемого объекта и процедуре создания.
Структурные шаблоны. Описывают как составлять сложные структуры из классов и объектов с определенными свойствами.
Шаблоны поведения. Описывают каким образом можно организовать и изменять поведение объектов
Обязанности классовОбязанность (responsibility) – это контракт или обязательство класса:Обязанность знания (knowing). Реализуется методами доступа (не изменяется состояние

Слайд 3«Одиночка» (Singleton)
class Singleton
{
public:
static Singleton* Instance()
{
if(_instance ==

0)
{
_instance = new Singleton;

}
return _instance;
}
Data GetData()
{
return _data;
}
private:
Singleton() { _data.x = 3; /* действия */}
static Singleton* _instance;
Data data;
}

void main()
{
Data d1 = Singleton::Instance()->GetData();
}

Гарантирует, что у класса есть только один экземпляр, и предоставляет к нему доступ


«Одиночка» (Singleton)class Singleton{public: static Singleton* Instance() {  if(_instance == 0)  {   _instance =

Слайд 4«Фабричный метод» (Factory Method)
Определяет интерфейс для создания объекта, позволяя подклассам

определять, какому классу должен принадлежать создаваемый объект
реализация

«Фабричный метод» (Factory Method)Определяет интерфейс для создания объекта, позволяя подклассам определять, какому классу должен принадлежать создаваемый объектреализация

Слайд 5«Абстрактная фабрика» (Abstract Factory)
Предоставляет интерфейс для создания семейств взаимосвязанных или

взаимозависимых объектов, не специфицируя их конкретные классы

«Абстрактная фабрика» (Abstract Factory)Предоставляет интерфейс для создания семейств взаимосвязанных или взаимозависимых объектов, не специфицируя их конкретные классы

Слайд 6«Абстрактная фабрика» (Abstract Factory)

«Абстрактная фабрика» (Abstract Factory)

Слайд 7«Абстрактная фабрика» (Abstract Factory)
class Client
{
void f(AbstractFactory* factory)
{

AbstractProductA aProduct = factory-> CreateProductA();
AbstractProductB bProduct = factory->

CreateProductB();
/* Действия с aProduct, bProduct */
}
}

void main()
{
Client client;
AbstractFactory* factory =
new ConcreteFactory1(); // а можно ConcreteFactory2
client->f(factory);
}
«Абстрактная фабрика» (Abstract Factory)class Client{ void f(AbstractFactory* factory) {  AbstractProductA aProduct = factory-> CreateProductA();  AbstractProductB

Слайд 8«Декоратор» (Decorator)
Динамически добавляет объекту новые обязанности. Является альтернативой наследованию

«Декоратор» (Decorator)Динамически добавляет объекту новые обязанности. Является альтернативой наследованию

Слайд 9«Декоратор» (Decorator)

«Декоратор» (Decorator)

Слайд 10«Стратегия» (Strategy)
Определяет семейство взаимозаменяемых алгоритмов, инкапсулируя их. Алгоритмы могут варьироваться

не зависимо от клиентов

«Стратегия» (Strategy)Определяет семейство взаимозаменяемых алгоритмов, инкапсулируя их. Алгоритмы могут варьироваться не зависимо от клиентов

Слайд 11«Компоновщик» (Composite)
Компонует объекты в древовидные структуры. Позволяет клиенту единообразно взаимодействовать

с простыми и составными объектами


«Компоновщик» (Composite)Компонует объекты в древовидные структуры. Позволяет клиенту единообразно взаимодействовать с простыми и составными объектами

Слайд 12«Компоновщик» (Composite)

«Компоновщик» (Composite)

Слайд 13«Наблюдатель» (Observer)
Уровень представления
Уровень бизнес-логики
Устанавливает отношение между объектами «один ко многим»

так, чтобы при изменении состояния одного объекта другие зависимые объекты

могли обновить свое состояние
«Наблюдатель» (Observer)Уровень представленияУровень бизнес-логикиУстанавливает отношение между объектами «один ко многим» так, чтобы при изменении состояния одного объекта

Слайд 14«Наблюдатель» (Observer)
Уровень представления
Уровень бизнес-логики

«Наблюдатель» (Observer)Уровень представленияУровень бизнес-логики

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика