Фасад (шаблон проектирования): различия между версиями

[непроверенная версия][непроверенная версия]
Содержимое удалено Содержимое добавлено
→‎JavaScript: избыточность
м орфо, replaced: путем → путём
Строка 14:
}}
 
'''Шаблон фасад''' ({{lang-en|Facade}}) — [[Структурные шаблоны проектирования|структурный]] [[шаблон проектирования]], позволяющий скрыть сложность системы путемпутём сведения всех возможных внешних вызовов к одному [[Объект_Объект (программирование)|объект]]у, делегирующему их соответствующим объектам системы.
 
== Описание ==
Строка 23:
 
=== Решение ===
Определить одну точку взаимодействия с подсистемой — фасадный объект, обеспечивающий общий интерфейс с подсистемой, и возложить на него обязанность по взаимодействию с её компонентами. Фасад — это внешний объект, обеспечивающий единственную точку входа для служб подсистемы. Реализация других компонентов подсистемы закрыта и не видна внешним компонентам. Фасадный объект обеспечивает реализацию GRASP паттерна [[GRASP#Protected_Variations_Protected Variations .28.D0.A1.D0.BE.D0.BA.D1.80.D1.8B.D1.82.D0.B8.D0.B5_B5 .D1.80.D0.B5.D0.B0.D0.BB.D0.B8.D0.B7.D0.B0.D1.86.D0.B8.D0.B8.29|Устойчивый к изменениям]] (Protected Variations) с точки зрения защиты от изменений в реализации подсистемы.
 
== Особенности применения ==
Строка 197:
# ...
pass
 
 
class Memory(object):
Строка 207 ⟶ 206 :
# ...
pass
 
 
class HardDrive(object):
Строка 217 ⟶ 215 :
# ...
pass
 
 
# Фасад
Строка 231 ⟶ 228 :
self._cpu.jump(BOOT_ADDRESS)
self._cpu.execute()
 
 
# Клиентская часть