SlideShare a Scribd company logo
Design Pattern
Модуль 1
Design Patern
Andrey Gladky
KspDevelop@gmail.com 2
В основі доброго розуміння побудови коду, та й дизайну взагалі,
лежить принцип єдиної відповідальності.
Усі дизайн-патерни поділені на три великі групи, а
саме:
 Породжуючі - основним завданням таких патернів
є спростити створення об’єктів.
 Cтруктурні - формування найбільш підходящої
структури та взаємодії між класами для виконання
певних завдань.
 Поведінкові - вони або інкапсулюють поведінку, або
дозволяють її розподілити.
Andrey Gladky
KspDevelop@gmail.com 3
 Фасад - надає єдину «точку доступу» до
підсистеми, тим самим спрощуючи її використання
та розуміння
 Одинак - забезпечує існування єдиного
екземпляру класу та єдиного доступу до нього
 Будівельник - вимальовує стандартний процес
створення складного об’єкта, розділяючи логіку
будування об’єкта від його представлення
 Шаблонний Метод - задає покроково алгоритм, а
елементи алгоритму можуть бути довизначені в
похідних класах
 Декоратор – використовується для надання деякої
додаткової функціональності об'єктам
Andrey Gladky
KspDevelop@gmail.com 4
 Фабричний метод - вирішує, яку реалізацію
інстанціювати.Вирішують або нащадки фабричного
методу, або він сам, приймаючи якийсь параметер
 Абстрактна фабрика - надає простий інтерфейс
для створення об’єктів, які належать до того чи
іншого сімейства.
 Адаптер - надає можливість користуватися
об’єктом, який не є прийнятним у нашій системі і
який не можна змінити. Ми адаптуємо його
функціональність через інший, відомий нашій
системі, інтерфейс
 Міст - дозволяє розділити імплементацію від її
абстракції, таким чином реалізація може бути
змінена окремо від абстракції, оскільки вона не
наслідується від неї напряму.
Andrey Gladky
KspDevelop@gmail.com 5
 Ланцюжок Відповідальностей - Уникає зв’язності
відправника запиту із його адресатом, шляхом
надання іншим об’єктам можливість обробити
запит. Передає отримані об’єкти вздовж ланцюжка
допоки якась ланка не обробить об’єкт.
 Команда - дозволяє інкапсулювати всю
інформацію, необхідну для виконання певних
операцій, які можуть бути виконані пізніше,
використавши об’єкт команди.
 Хранитель - використовується тоді, коли ви хочете
відмінити операції без відображення внутрішньої
структури Власника (Originator — гра у нашому
прикладі). Координація операцій здійснюється
Опікуном (Caretaker — контролер гри), який
надає можливість простого збереження миттєвих
станів системи без уявлення що ці стани собою
являють.
Andrey Gladky
KspDevelop@gmail.com 6
 Спостерігач – дозволяє автоматично реагувати
багатьом об’єктам за зміную стану іншого об’єкта.
Andrey Gladky
KspDevelop@gmail.com 7
Демонстрація
Ad

More Related Content

Viewers also liked (12)

Abordaje A la institución Educativa Nacional "Zea"
Abordaje A la institución Educativa Nacional "Zea"Abordaje A la institución Educativa Nacional "Zea"
Abordaje A la institución Educativa Nacional "Zea"
Jorman garcia
 
Definiendo la filosofia basica 2 de 4
Definiendo la filosofia basica 2 de 4Definiendo la filosofia basica 2 de 4
Definiendo la filosofia basica 2 de 4
PIMENTEL CONSULTORIA
 
Fi̇nansman kaynaklari
Fi̇nansman kaynaklariFi̇nansman kaynaklari
Fi̇nansman kaynaklari
İlker YILDIZ
 
Cassandra Day London 2015: Apache Cassandra Anti-Patterns
Cassandra Day London 2015: Apache Cassandra Anti-PatternsCassandra Day London 2015: Apache Cassandra Anti-Patterns
Cassandra Day London 2015: Apache Cassandra Anti-Patterns
DataStax Academy
 
Win api module_2.0_gdi+
Win api module_2.0_gdi+Win api module_2.0_gdi+
Win api module_2.0_gdi+
Andrii Hladkyi
 
Презентация Дмитрия Пархоменко на форуме EngageMe
Презентация Дмитрия Пархоменко на форуме EngageMeПрезентация Дмитрия Пархоменко на форуме EngageMe
Презентация Дмитрия Пархоменко на форуме EngageMe
Dentsu_Aegis_Network_Russia
 
Brekaout ppt
Brekaout pptBrekaout ppt
Brekaout ppt
Leah Kicinski
 
Академия занимательной математики
Академия занимательной математикиАкадемия занимательной математики
Академия занимательной математики
Янина Маркова
 
COMEXPERU - data 2016
COMEXPERU - data 2016COMEXPERU - data 2016
COMEXPERU - data 2016
agroalimentaria.pe
 
Tic 3
Tic 3Tic 3
Tic 3
Alba Herrera de la Costa
 
Presentació pares toscana
Presentació pares toscanaPresentació pares toscana
Presentació pares toscana
Jordi Caballé Canals
 
ProInversión - diciembre 2016
ProInversión - diciembre 2016ProInversión - diciembre 2016
ProInversión - diciembre 2016
agroalimentaria.pe
 
Abordaje A la institución Educativa Nacional "Zea"
Abordaje A la institución Educativa Nacional "Zea"Abordaje A la institución Educativa Nacional "Zea"
Abordaje A la institución Educativa Nacional "Zea"
Jorman garcia
 
Definiendo la filosofia basica 2 de 4
Definiendo la filosofia basica 2 de 4Definiendo la filosofia basica 2 de 4
Definiendo la filosofia basica 2 de 4
PIMENTEL CONSULTORIA
 
Fi̇nansman kaynaklari
Fi̇nansman kaynaklariFi̇nansman kaynaklari
Fi̇nansman kaynaklari
İlker YILDIZ
 
Cassandra Day London 2015: Apache Cassandra Anti-Patterns
Cassandra Day London 2015: Apache Cassandra Anti-PatternsCassandra Day London 2015: Apache Cassandra Anti-Patterns
Cassandra Day London 2015: Apache Cassandra Anti-Patterns
DataStax Academy
 
Win api module_2.0_gdi+
Win api module_2.0_gdi+Win api module_2.0_gdi+
Win api module_2.0_gdi+
Andrii Hladkyi
 
Презентация Дмитрия Пархоменко на форуме EngageMe
Презентация Дмитрия Пархоменко на форуме EngageMeПрезентация Дмитрия Пархоменко на форуме EngageMe
Презентация Дмитрия Пархоменко на форуме EngageMe
Dentsu_Aegis_Network_Russia
 
Академия занимательной математики
Академия занимательной математикиАкадемия занимательной математики
Академия занимательной математики
Янина Маркова
 
ProInversión - diciembre 2016
ProInversión - diciembre 2016ProInversión - diciembre 2016
ProInversión - diciembre 2016
agroalimentaria.pe
 

Similar to Design pattern module 1 (20)

ЮРІЙ СЕРДЮК «Патерни проектування в автоматизації. Практичний досвід з Python...
ЮРІЙ СЕРДЮК «Патерни проектування в автоматизації. Практичний досвід з Python...ЮРІЙ СЕРДЮК «Патерни проектування в автоматизації. Практичний досвід з Python...
ЮРІЙ СЕРДЮК «Патерни проектування в автоматизації. Практичний досвід з Python...
QADay
 
Uml+Patterns2
Uml+Patterns2Uml+Patterns2
Uml+Patterns2
apofig
 
Patterns.pptx
Patterns.pptxPatterns.pptx
Patterns.pptx
ssuser1ce94b
 
m-9-10.pptx
m-9-10.pptxm-9-10.pptx
m-9-10.pptx
AlexanderSmidt
 
GRASP as an architecture base [URK]
GRASP as an architecture base [URK]GRASP as an architecture base [URK]
GRASP as an architecture base [URK]
Oleg Mazhukin
 
Umbrello
UmbrelloUmbrello
Umbrello
vlad hats
 
Вступ в спеціальність 151 АКІТ. Лекція №2.
Вступ в спеціальність 151 АКІТ. Лекція №2.Вступ в спеціальність 151 АКІТ. Лекція №2.
Вступ в спеціальність 151 АКІТ. Лекція №2.
Lesia Sobolevska
 
[Knowledge Sharing] - Behavioral patterns by Pavlo Serdyuk (UKR)
[Knowledge Sharing] - Behavioral patterns by Pavlo Serdyuk (UKR)[Knowledge Sharing] - Behavioral patterns by Pavlo Serdyuk (UKR)
[Knowledge Sharing] - Behavioral patterns by Pavlo Serdyuk (UKR)
Exoft LLC
 
Uml module 2
Uml module 2Uml module 2
Uml module 2
Andrii Hladkyi
 
Uml module 2
Uml module 2Uml module 2
Uml module 2
Andrii Hladkyi
 
Lviv MD Day 2015 Сергій Мумряк "Хто так будує? Антипаттерни iOS розробки"
Lviv MD Day 2015 Сергій Мумряк "Хто так будує? Антипаттерни iOS розробки"Lviv MD Day 2015 Сергій Мумряк "Хто так будує? Антипаттерни iOS розробки"
Lviv MD Day 2015 Сергій Мумряк "Хто так будує? Антипаттерни iOS розробки"
Lviv Startup Club
 
UML Prezentation class diagram
UML Prezentation class diagramUML Prezentation class diagram
UML Prezentation class diagram
juliettco
 
Название презентации
Название презентацииНазвание презентации
Название презентации
juliettco
 
Prezentation class diagram
Prezentation class diagramPrezentation class diagram
Prezentation class diagram
Марина Босова
 
12 Architecture
12 Architecture12 Architecture
12 Architecture
eleksdev
 
Advanced c sharp part 3
Advanced c sharp part 3Advanced c sharp part 3
Advanced c sharp part 3
eleksdev
 
iPhone Objective-C Development (ukr) (2009)
iPhone Objective-C Development (ukr) (2009)iPhone Objective-C Development (ukr) (2009)
iPhone Objective-C Development (ukr) (2009)
Anatoliy Okhotnikov
 
Моделі даних в БД. ER-діаграми
Моделі даних в БД. ER-діаграмиМоделі даних в БД. ER-діаграми
Моделі даних в БД. ER-діаграми
pogromskaya
 
"Hancture Mediator Architecture: The Secret Ingredient of a Successful Applic...
"Hancture Mediator Architecture: The Secret Ingredient of a Successful Applic..."Hancture Mediator Architecture: The Secret Ingredient of a Successful Applic...
"Hancture Mediator Architecture: The Secret Ingredient of a Successful Applic...
Fwdays
 
ЮРІЙ СЕРДЮК «Патерни проектування в автоматизації. Практичний досвід з Python...
ЮРІЙ СЕРДЮК «Патерни проектування в автоматизації. Практичний досвід з Python...ЮРІЙ СЕРДЮК «Патерни проектування в автоматизації. Практичний досвід з Python...
ЮРІЙ СЕРДЮК «Патерни проектування в автоматизації. Практичний досвід з Python...
QADay
 
Uml+Patterns2
Uml+Patterns2Uml+Patterns2
Uml+Patterns2
apofig
 
GRASP as an architecture base [URK]
GRASP as an architecture base [URK]GRASP as an architecture base [URK]
GRASP as an architecture base [URK]
Oleg Mazhukin
 
Вступ в спеціальність 151 АКІТ. Лекція №2.
Вступ в спеціальність 151 АКІТ. Лекція №2.Вступ в спеціальність 151 АКІТ. Лекція №2.
Вступ в спеціальність 151 АКІТ. Лекція №2.
Lesia Sobolevska
 
[Knowledge Sharing] - Behavioral patterns by Pavlo Serdyuk (UKR)
[Knowledge Sharing] - Behavioral patterns by Pavlo Serdyuk (UKR)[Knowledge Sharing] - Behavioral patterns by Pavlo Serdyuk (UKR)
[Knowledge Sharing] - Behavioral patterns by Pavlo Serdyuk (UKR)
Exoft LLC
 
Lviv MD Day 2015 Сергій Мумряк "Хто так будує? Антипаттерни iOS розробки"
Lviv MD Day 2015 Сергій Мумряк "Хто так будує? Антипаттерни iOS розробки"Lviv MD Day 2015 Сергій Мумряк "Хто так будує? Антипаттерни iOS розробки"
Lviv MD Day 2015 Сергій Мумряк "Хто так будує? Антипаттерни iOS розробки"
Lviv Startup Club
 
UML Prezentation class diagram
UML Prezentation class diagramUML Prezentation class diagram
UML Prezentation class diagram
juliettco
 
Название презентации
Название презентацииНазвание презентации
Название презентации
juliettco
 
12 Architecture
12 Architecture12 Architecture
12 Architecture
eleksdev
 
Advanced c sharp part 3
Advanced c sharp part 3Advanced c sharp part 3
Advanced c sharp part 3
eleksdev
 
iPhone Objective-C Development (ukr) (2009)
iPhone Objective-C Development (ukr) (2009)iPhone Objective-C Development (ukr) (2009)
iPhone Objective-C Development (ukr) (2009)
Anatoliy Okhotnikov
 
Моделі даних в БД. ER-діаграми
Моделі даних в БД. ER-діаграмиМоделі даних в БД. ER-діаграми
Моделі даних в БД. ER-діаграми
pogromskaya
 
"Hancture Mediator Architecture: The Secret Ingredient of a Successful Applic...
"Hancture Mediator Architecture: The Secret Ingredient of a Successful Applic..."Hancture Mediator Architecture: The Secret Ingredient of a Successful Applic...
"Hancture Mediator Architecture: The Secret Ingredient of a Successful Applic...
Fwdays
 
Ad

More from Andrii Hladkyi (20)

Net framework and C# module 17. Serialization
Net framework and  C# module 17. SerializationNet framework and  C# module 17. Serialization
Net framework and C# module 17. Serialization
Andrii Hladkyi
 
Net Framework and C# Module 3 4. Inheritance, Abstractions
Net Framework and C# Module 3 4. Inheritance, AbstractionsNet Framework and C# Module 3 4. Inheritance, Abstractions
Net Framework and C# Module 3 4. Inheritance, Abstractions
Andrii Hladkyi
 
NET Framework and C# Module 12.2. Garbage Collector
NET Framework and C# Module 12.2. Garbage CollectorNET Framework and C# Module 12.2. Garbage Collector
NET Framework and C# Module 12.2. Garbage Collector
Andrii Hladkyi
 
System programing module 2. Threads
System programing module 2. ThreadsSystem programing module 2. Threads
System programing module 2. Threads
Andrii Hladkyi
 
System programing module 1. Processes
System programing module 1. ProcessesSystem programing module 1. Processes
System programing module 1. Processes
Andrii Hladkyi
 
NET Framework and C# Module 6.2. Generics
NET Framework and C# Module 6.2. GenericsNET Framework and C# Module 6.2. Generics
NET Framework and C# Module 6.2. Generics
Andrii Hladkyi
 
NET Framework and C# Module 6. Delegates, Events
NET Framework and C# Module 6. Delegates, EventsNET Framework and C# Module 6. Delegates, Events
NET Framework and C# Module 6. Delegates, Events
Andrii Hladkyi
 
NET Framework and C# Module 5. Interfaces
NET Framework and C# Module 5. InterfacesNET Framework and C# Module 5. Interfaces
NET Framework and C# Module 5. Interfaces
Andrii Hladkyi
 
Net Framework and c# module 2. OOP
Net Framework and c# module 2. OOPNet Framework and c# module 2. OOP
Net Framework and c# module 2. OOP
Andrii Hladkyi
 
Net Framework and c# Lesson 1
Net Framework and c# Lesson 1Net Framework and c# Lesson 1
Net Framework and c# Lesson 1
Andrii Hladkyi
 
Wpf module 2
Wpf module 2Wpf module 2
Wpf module 2
Andrii Hladkyi
 
Wpf module 1
Wpf module 1Wpf module 1
Wpf module 1
Andrii Hladkyi
 
Msp module 3
Msp module 3Msp module 3
Msp module 3
Andrii Hladkyi
 
Msp module 2
Msp module 2Msp module 2
Msp module 2
Andrii Hladkyi
 
Msp module 1
Msp module 1Msp module 1
Msp module 1
Andrii Hladkyi
 
Ado.net module 2
Ado.net module 2Ado.net module 2
Ado.net module 2
Andrii Hladkyi
 
Ado.net module 1
Ado.net module 1Ado.net module 1
Ado.net module 1
Andrii Hladkyi
 
Win api module_1.1_ok
Win api module_1.1_okWin api module_1.1_ok
Win api module_1.1_ok
Andrii Hladkyi
 
Win api module_6.2
Win api module_6.2Win api module_6.2
Win api module_6.2
Andrii Hladkyi
 
Design pattern module 1
Design pattern module 1Design pattern module 1
Design pattern module 1
Andrii Hladkyi
 
Net framework and C# module 17. Serialization
Net framework and  C# module 17. SerializationNet framework and  C# module 17. Serialization
Net framework and C# module 17. Serialization
Andrii Hladkyi
 
Net Framework and C# Module 3 4. Inheritance, Abstractions
Net Framework and C# Module 3 4. Inheritance, AbstractionsNet Framework and C# Module 3 4. Inheritance, Abstractions
Net Framework and C# Module 3 4. Inheritance, Abstractions
Andrii Hladkyi
 
NET Framework and C# Module 12.2. Garbage Collector
NET Framework and C# Module 12.2. Garbage CollectorNET Framework and C# Module 12.2. Garbage Collector
NET Framework and C# Module 12.2. Garbage Collector
Andrii Hladkyi
 
System programing module 2. Threads
System programing module 2. ThreadsSystem programing module 2. Threads
System programing module 2. Threads
Andrii Hladkyi
 
System programing module 1. Processes
System programing module 1. ProcessesSystem programing module 1. Processes
System programing module 1. Processes
Andrii Hladkyi
 
NET Framework and C# Module 6.2. Generics
NET Framework and C# Module 6.2. GenericsNET Framework and C# Module 6.2. Generics
NET Framework and C# Module 6.2. Generics
Andrii Hladkyi
 
NET Framework and C# Module 6. Delegates, Events
NET Framework and C# Module 6. Delegates, EventsNET Framework and C# Module 6. Delegates, Events
NET Framework and C# Module 6. Delegates, Events
Andrii Hladkyi
 
NET Framework and C# Module 5. Interfaces
NET Framework and C# Module 5. InterfacesNET Framework and C# Module 5. Interfaces
NET Framework and C# Module 5. Interfaces
Andrii Hladkyi
 
Net Framework and c# module 2. OOP
Net Framework and c# module 2. OOPNet Framework and c# module 2. OOP
Net Framework and c# module 2. OOP
Andrii Hladkyi
 
Net Framework and c# Lesson 1
Net Framework and c# Lesson 1Net Framework and c# Lesson 1
Net Framework and c# Lesson 1
Andrii Hladkyi
 
Design pattern module 1
Design pattern module 1Design pattern module 1
Design pattern module 1
Andrii Hladkyi
 
Ad

Design pattern module 1

  • 2. Design Patern Andrey Gladky KspDevelop@gmail.com 2 В основі доброго розуміння побудови коду, та й дизайну взагалі, лежить принцип єдиної відповідальності. Усі дизайн-патерни поділені на три великі групи, а саме:  Породжуючі - основним завданням таких патернів є спростити створення об’єктів.  Cтруктурні - формування найбільш підходящої структури та взаємодії між класами для виконання певних завдань.  Поведінкові - вони або інкапсулюють поведінку, або дозволяють її розподілити.
  • 3. Andrey Gladky KspDevelop@gmail.com 3  Фасад - надає єдину «точку доступу» до підсистеми, тим самим спрощуючи її використання та розуміння  Одинак - забезпечує існування єдиного екземпляру класу та єдиного доступу до нього  Будівельник - вимальовує стандартний процес створення складного об’єкта, розділяючи логіку будування об’єкта від його представлення  Шаблонний Метод - задає покроково алгоритм, а елементи алгоритму можуть бути довизначені в похідних класах  Декоратор – використовується для надання деякої додаткової функціональності об'єктам
  • 4. Andrey Gladky KspDevelop@gmail.com 4  Фабричний метод - вирішує, яку реалізацію інстанціювати.Вирішують або нащадки фабричного методу, або він сам, приймаючи якийсь параметер  Абстрактна фабрика - надає простий інтерфейс для створення об’єктів, які належать до того чи іншого сімейства.  Адаптер - надає можливість користуватися об’єктом, який не є прийнятним у нашій системі і який не можна змінити. Ми адаптуємо його функціональність через інший, відомий нашій системі, інтерфейс  Міст - дозволяє розділити імплементацію від її абстракції, таким чином реалізація може бути змінена окремо від абстракції, оскільки вона не наслідується від неї напряму.
  • 5. Andrey Gladky KspDevelop@gmail.com 5  Ланцюжок Відповідальностей - Уникає зв’язності відправника запиту із його адресатом, шляхом надання іншим об’єктам можливість обробити запит. Передає отримані об’єкти вздовж ланцюжка допоки якась ланка не обробить об’єкт.  Команда - дозволяє інкапсулювати всю інформацію, необхідну для виконання певних операцій, які можуть бути виконані пізніше, використавши об’єкт команди.  Хранитель - використовується тоді, коли ви хочете відмінити операції без відображення внутрішньої структури Власника (Originator — гра у нашому прикладі). Координація операцій здійснюється Опікуном (Caretaker — контролер гри), який надає можливість простого збереження миттєвих станів системи без уявлення що ці стани собою являють.
  • 6. Andrey Gladky KspDevelop@gmail.com 6  Спостерігач – дозволяє автоматично реагувати багатьом об’єктам за зміную стану іншого об’єкта.
  翻译: