Unity 3D Visitor (Відвідувач)

2075 / Unity / 2D / 3D / Шаблони / Відвідувач (Visitor)

 

Описує дії, які виконуються над кожним об'єктом в структурі

Можна додавати нові дії над об'єктами, не змінюючи їх класи

Рятує від багатьох if та switch 

// if (hit is HitMonster1) { }
// else if (hit is HitMonster2) { }
// else if (hit is HitMonster3) { }

Використовує перевантаження функцій

Повертає абстракцію, напр. Hit (по кому влучили)

Виносить операцію над об'єктом влучання в окремий скрипт

При додаванні нового об'єкту, шаблон підказує де і що треба додати

 


 

Страхового агент-початківць, обходить різні будинки, і для кожного типу майна є своя пропозиція

 

Вже є набори паперів (що пропонувати) для різних видів об'єктів

 


 

PlayerAndWeapon WeaponInput WeaponReaction IHitVisiter
Hit HitMonster1 HitMonster2 HitMonster3