Шаблон проектування фасад. Pattern facade.
Відео: Шаблони проектування Java
Відео: Шаблони Java. Facade (Фасад)
Всім привіт. Сьогодні ми розглянемо шаблон проектування "Фасад" (Pattern Facade). Він дуже простий для розуміння і осмислення, але на практиці його застосувати досить складно.
опис
Суть його полягає в тому, щоб зробити загальний інтерфейс для підсистем. Наприклад, розглянемо пральну машинку. У неї є безліч різних підсистем: регулювання води, сушарка, віджимання, поворот барабана і інші. Однак, користувачеві вони не потрібні. Навіщо нам, наприклад, підсистема повороту барабана? Правильно, вона нам не потрібна. Все, що нам потрібно, це виставити температуру і натиснути кнопку. У деяких машинах досить вибрати тип білизни, і вона автоматично підбере найкращу температуру. Ось ця наша кнопка запуску і є фасад - загальний інтерфейс, який сам управляє підсистемами.
Відео: [патерн] Фасад Facade Java
Приклад коду реалізації
lt ;?php
class CPU {
publicfunction fz(){/ * Code ... * /}
publicfunction leap($ pos){/ * Code ... * /}
publicfunction performance(){/ * Code ... * /}
}
classMemory{
publicfunction charge($ pos, $ info){/ * Code ... * /}
}
classHardDrive{
publicfunction lection($ lba, $ scale){/ * Code ... * /}
}
classComputer{
protected $ cpu-
protected $ memory-
protected $ hardDrive-
publicfunction __construct(){
$ this-gt;cpu =new CPU() -
$ this-gt;memory =newMemory() -
$ this-gt;hardDrive =newHardDrive() -
}
publicfunction startComputer(){
$ this-gt;cpu-gt;fz() -
$ this-gt;memory-gt;charge( BOOT_ADDRESS, $ this-gt;hardDrive-gt;lection(b_sector, sector_s) -
$ this-gt;cpu-gt;leap(adress) -
$ this-gt;cpu-gt;performance() -
}
}
$ facade =newComputer() -
$ facade-gt;startComputer() -
?gt;
Як бачите, у нас є кілька класів, кілька підсистем комп`ютера: CPU, Memory, HardDrive. За що вони відповідають, думаю, зрозуміло. Однак, навіщо вони нам все окремо, вірно? Ось, щоб позбутися від цього, ми створюємо наш фасад - Computer, в якому створюємо метод startComputer, який буде використовувати підсистеми для запуску комп`ютера.
Для розуміння цей шаблон дуже простий, вся складність полягає в застосуванні його на практиці, тому що важко знайти всі ці залежності, підсистеми, які можна об`єднати в один фасад. Однак, якщо ви знайшли такі залежності у себе в коді і їх у вас вже більше 10 штук, то следут створювати фасад.
Отже, на цьому все для сьогоднішньої статті. Дякую за увагу!
- Як користуватися blender для початківців
- Як зробити анімовану кнопку меню на scss.
- Nodejs. Що таке query strings.
- Як зробити бланк в excel.
- Як використовувати інтерфейс countable в php.
- Навіщо потрібен тег ruby в html.
- Nodejs. Як зібрати шаблон з декількох частин.
- Nodejs. Шаблони модулів.
- Шаблони електронної пошти на html.
- Шаблон проектування адаптер. Pattern adapter.
- Шаблон оголошення з відривними листочками в word.
- Створення движка на mvc. Вступ.
- Шаблон проектування "одинак" (pattern singleton).
- Установка java jre / jdk в ubuntu 16.04
- Тип меню: шаблон блогу розділу
- Ооп проти процедурного підходу.
- Шаблон проектування "стратегія" (pattern strategy).
- Шаблон візитки в word.
- Підхід mvc (model-view-controller)
- Html 5 атрибути для роботи з полями форми.
- Тип меню: шаблон відправки матеріалу