Содержание
- 2. План Что такое шаблон проектирования? История появления Преимущества и критика Классификация шаблонов проектирования Примеры некоторых шаблонов
- 3. Что такое шаблон проектирования? В процессе написания программ (как и в любой другой области) часто возникают
- 4. Что такое шаблон проектирования? Шаблон проектирования (англ. design pattern) – многократно используемое решение распространённых задач при
- 5. История появления Шаблоны проектирования впервые появились в строительной архитектуре. Человечество на сегодняшний день: 5000 лет опыта
- 6. История появления Кристофер Александер – архитектор и филосов. Две книги: “A Pattern Labguage: Towns, Buildings, Constructions”
- 7. Преимущества Стандартный шаблон можно хорошо проработать В программах, где он используется, будет меньше кода, потенциально содержащего
- 8. Критика Зацикливание на шаблонах порождает привычку пользоваться стандартными вещами и отучает нас придумывать нестандартные решения Шаблоны
- 9. Классификация шаблонов Основные Порождающие Структурные Поведенческие Разделяющие Архитектурные Анти-паттерны И другие © Belarus Open Source Laboratory,
- 10. Классификация шаблонов Основные Фундаментальные, используются другими шаблонами Delegation, interface, abstract superclass, interface and abstract class, immutable,
- 11. Классификация шаблонов Структурные Описывают, как их классов и объектов собираются более крупные структуры Adapter, iterator, bridge,
- 12. Классификация шаблонов Разделяющие Описывают, как их классов и объектов собираются более крупные структуры Filter, composite, read
- 13. Singleton (одиночка) Гарантирует, что у класса есть только один экземпляр и предоставляет к нему глобальную точку
- 14. Singleton (одиночка) © Belarus Open Source Laboratory, TechDay Докладчик: Константин Слисенко, JazzTeam public class Singleton {
- 15. Singleton (одиночка) Цели использования Централизованное управление ресурсом Доступ из любой точки программы Создание объекта требует больших
- 16. Builder (Строитель) Делает процесс создания сложного объекта независимым от того, как конструируются сами части и как
- 17. Builder (Строитель) class Pizza { private String dough = ""; private String sauce = ""; private
- 18. Builder (Строитель) class HawaiianPizzaBuilder extends PizzaBuilder { public void buildDough() { pizza.setDough("cross"); } public void buildSauce()
- 19. Builder (Строитель) class Cook { private PizzaBuilder pizzaBuilder; public void setPizzaBuilder(PizzaBuilder pb) { pizzaBuilder = pb;
- 20. Builder (Строитель) Пример – выборка товара из каталога по сложным критериям При выборе очередного критерия могут
- 21. Abstract Factory (Абстрактная фабрика) Интерфейс для создания группы объектов, принадлежащих одному набору классов и используемых совместно
- 22. Abstract Factory (Абстрактная фабрика) Пример – различные стили пользовательского интерфейса Мы хотим, чтобы в программе можно
- 23. Abstract Factory (Абстрактная фабрика) © Belarus Open Source Laboratory, TechDay Докладчик: Константин Слисенко, JazzTeam
- 24. Abstract Factory (Абстрактная фабрика) interface GUIFactory { public Button createButton(); } class WinFactory implements GUIFactory {
- 25. Abstract Factory (Абстрактная фабрика) class WinButton implements Button { public void paint() { System.out.println("I'm a WinButton");
- 26. Observer (Наблюдатель) Второе название – “издатель-подписчик” Один объект генерирует события, другие объекты эти события получает и
- 27. Observer (Наблюдатель) © Belarus Open Source Laboratory, TechDay Докладчик: Константин Слисенко, JazzTeam import java.util.Observable; import java.util.Observer;
- 28. Observer (Наблюдатель) Пример – диаграмма в Excell, построенная по таблице При изменении данных в таблице –
- 29. Strategy (Стратегия) Общий интерфейс для абстрактного алгоритма Разные реализации конкретных алгоритмов - стратегий Если нужно поменять
- 30. Strategy (Стратегия) class StrategyExample { public static void main(String[] args) { IStragtegy myStrategy; myStrategy = new
- 31. Strategy (Стратегия) Пример 1 – фильтры в Photoshop, на вход подаётся изображение, к нему применяется стратегия-фильтр
- 32. Facade (Фасад) Единая обёртка для группы классов Мы пользуемся фасадом и не думаем о классах, которые
- 33. Facade (Фасад) Пример – любые библиотеки и модули, у которых описан интерфейс © Belarus Open Source
- 34. Facade (Фасад) public class MessageHeader { private String from; private String to; public String getFrom() {
- 35. Facade (Фасад) public class Message { private MessageBody body; private MessageHeader header; public MessageBody getBody() {
- 36. Facade (Фасад) public class MessageCreatorFacade { private Message message = new Message(); private MessageHeader mh =
- 38. Скачать презентацию




























![Strategy (Стратегия) class StrategyExample { public static void main(String[] args) { IStragtegy](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1176858/slide-29.jpg)






1_kompyuter_Charlza_bebbidzha
Компьютерная грамотность
Klassifikatsia_PO_PK (1)
Система автоматической обработки претензий от ресторанов
Автоматизированная система мониторинга безопасности движения
Анализ программ
Рекомендации по работе с сетью
Разработка вероятностных математических моделей
Мир без интернета. Опрос учащихся 5-8 классов
Online fine system for drivers
FreeJam icon. Иконки
Організація пам'яті комп'ютера. Прості схеми управління пам'яттю. Тема 3.1
Class Journal Second. The New News for yourself
Безопасный город. Умный город
Функции вывода сообщений
Постоянно запоминающие устройства
Изображения к устному докладу на тему ВКУС
Школьная библиотека
C++ լեզուն լռելյայն վերահսկում է նախաարժեքավորումը, բայց ոչ թե մուտքագրումը
Количество путей в графе
Линии связи с использованием искусственных спутников Земли
Инструкция. Переход на авторизацию
Основы подготовки и проведения презентации на английском языке
Информационная инфраструктура
Характеристика производственной системы. Тема №4
Функции. Решение задач
Программирование линейных алгоритмов
Программа Sarafan