Чи є недолік дизайну, коли стан суб'єкта господарювання не повністю використовує enter (), Execute () та exit ()?


9

Я слідкую за прикладом Ігра програми програмування Мата Бакленда, і я виявляю, що я не завжди використовую для введення (), виконання () та виходу () у стан сутності. Наприклад, у RPG зброя може мати обладнаний стан, і я можу використовувати для цього стану enter () та exit (), щоб додати або відняти модифікатор здатності гравця, але насправді не потрібно виконувати ( ). Це вада дизайну в моєму двигуні чи недолік такого підходу?

Відповіді:


8

Не читаючи книгу, ці дзвінки звучать як звичайні точки входу для державного апарату. Щоб зрозуміти дзвінки, давайте подивимось, що вони роблять.

enter () - виконується, коли стан активовано.

Execute () - виконується під час активації стану.

exit () - виконується, коли стан вимкнено.

Вони підходять для будь-якого типу машин. Деяким машинам потрібні лише дзвінки "виконувати", інші потребують "введення" та "виходу", а третім потрібні всі три.

Приклад 1 : Курок кулемета.

  • Виконати: вогнепальні кулі за встановленою швидкістю.

Приклад 2 : Міст сили

  • Введіть: зробіть міст
  • Вихід: змусити міст зникнути

Приклад 3 : Особиста броньова сила.

  • Введіть: надайте гравцеві додатковий захист
  • Виконати: злити акумулятори
  • Вихід: зніміть додатковий захист

8

Це не обов'язково є ознакою якогось вади. Не кожен суб'єкт або держава використовуватиме кожен доступний метод. Просто залишити метод Execute () порожнім було б добре, IMO.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.