A-tit indd


Наблюдатель (Observer) —  Паттерны программирования игр



Download 3,35 Mb.
Pdf ko'rish
bet55/313
Sana05.06.2022
Hajmi3,35 Mb.
#638392
1   ...   51   52   53   54   55   56   57   58   ...   313
Bog'liq
Nistrem R. Patterni programmirovaniya igr-1

74
Наблюдатель (Observer) — 
Паттерны программирования игр
почему человечество изобрело компьютеры: они не де-
лают ошибок, которые так часты у нас.
Более безопасный способ заключается в том, чтобы за-
ставить наблюдателей автоматически удаляться из спис-
ка для каждого субъекта, когда те уничтожаются. Если вы 
реализуете такую логику один раз в базовом классе на-
блюдателей, следующим пользователям не придется пом-
нить об этом. Хотя такое решение добавляет некоторую 
сложность. Оно означает, что каждому 
наблюдателю
по-
надобится список 
субъектов
, за которыми он наблюдает. 
Вы получаете указатели в обоих направлениях.
Не волнуйтесь, у меня есть сборщик мусора
Все вы, крутые детки, с вашими современными языками 
со сборщиками мусора сейчас чувствуете себя на коне. 
Думаете, вам не нужно беспокоиться об обсуждаемой 
проблеме, потому что вы никогда ничего не удаляете 
явно? Подумайте еще раз!
Представьте себе: у вас есть окно пользовательского 
интерфейса, на котором визуализируется статистика пер-
сонажа игрока, его здоровье и прочее. Когда игрок выво-
дит это окно, вы инстанцируете для него новый объект. 
Когда он закрывает его, вы просто забываете об объекте 
и позволяете сборщику мусора сделать свою работу.
Каждый раз, когда персонаж получает по лицу (или 
по иной части тела, я допускаю варианты), он отправ-
ляет уведомление. Окно пользовательского интерфейса 
получает его и обновляет маленькую панель здоровья. 
Отлично. А теперь что происходит, когда игрок закры-
вает окно, но вы не удаляете наблюдателя из списка на-
блюдателей субъекта?
Пользовательский интерфейс больше не виден, но сбор-
щик мусора не выполнит свою работу, ведь ссылка на на-
блюдателя все еще существует в списке. Каждый раз, ко-
гда экран загружается, мы добавляем новый экземпляр 
этого наблюдателя в и без того длинный список.
Все время, пока игрок играет, бегает и борется, пер-
сонаж отправляет уведомления, которые получают все 



Download 3,35 Mb.

Do'stlaringiz bilan baham:
1   ...   51   52   53   54   55   56   57   58   ...   313




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish