Шаблон проектування фасад. Pattern facade.

Відео: Шаблони проектування Java

Шаблон проектування Фасад. Pattern Facade.

Відео: Шаблони 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 штук, то следут створювати фасад.

Отже, на цьому все для сьогоднішньої статті. Дякую за увагу!

Поділися в соціальних мережах:

Схожі
Ооп проти процедурного підходу.Ооп проти процедурного підходу.
Nodejs. Що таке query strings.Nodejs. Що таке query strings.
Шаблон проектування "стратегія" (pattern strategy).Шаблон проектування "стратегія" (pattern strategy).
Створення движка на mvc. Вступ.Створення движка на mvc. Вступ.
Як зробити бланк в excel.Як зробити бланк в excel.
Html 5 атрибути для роботи з полями форми.Html 5 атрибути для роботи з полями форми.
Як користуватися blender для початківцівЯк користуватися blender для початківців
Nodejs. Шаблони модулів.Nodejs. Шаблони модулів.
Тип меню: шаблон відправки матеріалуТип меню: шаблон відправки матеріалу
Шаблон проектування адаптер. Pattern adapter.Шаблон проектування адаптер. Pattern adapter.
» » Шаблон проектування фасад. Pattern facade.