A-tit indd



Download 3,35 Mb.
Pdf ko'rish
bet177/313
Sana05.06.2022
Hajmi3,35 Mb.
#638392
1   ...   173   174   175   176   177   178   179   180   ...   313
Bog'liq
Nistrem R. Patterni programmirovaniya igr-1

Архитектурные решения
Как вы видите, паттерн Подкласс песочница (Subclass 
Sandbox) достаточно «мягкий». Он описывает основную 
идею, а не детали механики. А значит, каждый раз, ко-
гда вы его применяете, вам придется принимать нестан-
дартные решения. Вот несколько вопросов, которые сто-
ят вашего рассмотрения.
Какие операции предоставить?
Это самый важный вопрос. Он напрямую влияет 
на то, насколько паттерн будет удобен и полезен. Одна 
из крайностей реализации: базовый класс не предостав-
ляет 
никаких
операций. Только метод песочницы. Чтобы 
Ранее я предлагал под-
ход на основе данных. 
Это могло отбить у вас 
желание что-либо де-
лать. Если поведение 
достаточно сложное 
и императивное, то его 
труднее будет реализо-
вать через данные.


240
Подкласс песочница (Subclass Sandbox) — 
Паттерны программирования игр
его реализовать, вам придется обращаться к системам 
за пределами базового класса. Но если вы так поступите, 
то, получается, вы уже не используете данный паттерн.
Другая крайность: базовый класс включает 
все
опера-
ции, которые могут понадобиться подклассам. Подклас-
сы связаны 
только
с базовым классом и не обращаются 
ни к каким другим системам за его пределами.
Между двумя вариантами существует промежуточ-
ная точка, в которой одни операции предоставляются 
базовым классом, а к другим подкласс обращается на-
прямую через внешние системы. И чем больше опера-
ций вы предоставляете, тем меньше подклассы связаны 
с внешними системами, но тем 
более
с ними связан ба-
зовый класс. То есть вы уменьшаете зависимость произ-
водных классов, перемещая ее (зависимость) в сам ба-
зовый класс.
Хороший вариант, если у вас множество производ-
ных классов, каждый из которых связан с внешними си-
стемами. Реализуя зависимость через предоставляемые 
операции, вы централизуете ее в одном месте — базо-
вом классе. Но чем чаще вы так поступаете, тем слож-
нее становится поддерживать этот единственный класс.
Итак, где провести черту? Вот несколько практиче-
ских советов.
• Если предоставляемая операция используется 
небольшим количеством из производных клас-
сов, то дело не стоит ваших усилий. Вы увеличите 
сложность базового класса, который влияет на все 
производные, а получите преимущество всего для 
пары подклассов.
Возможно, имеет смысл согласовать эти опера-
ции с другими или даже просто позволить произ-
водным классам напрямую обращаться к внешним 
системам. Так будет проще и понятнее.
• Если вы обращаетесь к методу из другой части 
игры, то лучше, если метод вообще не будет из-
менять состояния. Это по-прежнему зависимость, 
В частности, это озна-
чает, что в каждом файле 
кода для подкласса по-
надобится всего один 
#include
, для его ба-
зового класса.



Download 3,35 Mb.

Do'stlaringiz bilan baham:
1   ...   173   174   175   176   177   178   179   180   ...   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