A-tit indd



Download 3,35 Mb.
Pdf ko'rish
bet197/313
Sana05.06.2022
Hajmi3,35 Mb.
#638392
1   ...   193   194   195   196   197   198   199   200   ...   313
Bog'liq
Nistrem R. Patterni programmirovaniya igr-1

Одиночное наследование
• Это все еще относительно просто
. Его легко реали-
зовать и понять. Если технически неподготовлен-
ные пользователи будут работать с такой системой, 
то чем меньше «подвижных» частей, тем лучше. 
Многие языки программирования поддерживают 
только одиночное наследование. Один из лучших 
компромиссов между мощностью и простотой!
• Получение атрибутов медленнее
. Чтобы получить 
определенный фрагмент данных из объекта типа, 
нам придется пройти всю цепочку наследования. 
Если наш код чувствителен к производительности, 
мы не захотим тратить на это время.
• Множественное наследование
• Можно почти полностью избежать дублирования 
данных
. При хорошей системе множественного на-
следования пользователи могут построить иерар-
хию объектов типа практически без избыточности, 
что поможет избежать многократного «копиро-
вать-вставить», когда настанет время изменить 
значения.


268
Объект типа (Type Object) — 
Паттерны программирования игр
• Это сложно
. К сожалению, преимущества скорее 
теоретические, чем практические. Сложно понять 
множественное наследование и разобраться в коде.
Если наш тип дракона-зомби наследует и от дра-
кона, и от зомби, то источником каких параметров 
является зомби, а каких — дракон? Чтобы исполь-
зовать такую систему, пользователям нужно пони-
мать устройство дерева наследования, а главное —
уметь строить продуманную иерархию.
Большинство стандартов кодирования С++, ко-
торые я вижу сегодня, запрещают множественное 
наследование. А в Java и C# оно не реализовано 
вовсе. Надо признать неприятный факт: его слож-
но правильно реализовать и чаще лучше вовсе его 
не использовать. И хотя о нем стоит знать, у вас 
вряд ли возникнет реальная необходимость исполь-
зовать множественное наследование для объектов 
типа в вашей игре.
Смотрите также
• Высокоуровневая проблема, которую решает этот 
паттерн, — разделение данных и поведения между 
несколькими объектами. Другой паттерн, решаю-
щий ту же проблему, но несколько другим спосо-
бом, — Прототип (Prototype) (с. 79).
• Объект типа (Type Object) — близкий родственник 
паттерна Приспособленец (Flyweight) (с. 47). Оба 
позволяют вам разделить данные между экземпля-
рами. Цель паттерна Приспособленец (Flyweight) —
сэкономить память, так что общие данные могут 
не представлять «тип» объекта в общем понимании 
этого слова. Основная цель паттерна Объект типа 
(Type Object) заключается в создании организован-
ности и гибкости.
• Есть очень много общего между этим паттерном 
и паттерном Состояние (State) (с. 117). Оба позво-
ляют объекту делегировать часть своего поведения 


другому объекту. В случае с паттерном Объект типа 
(Type Object) мы делегируем то, чем объект 
явля-
ется 
в общем: постоянные данные, описывающие 
объект. При использовании паттерна Состояние 
(State) мы делегируем то, чем объект является 
пря-
мо сейчас
: временные данные, которые описывают 
текущую конфигурацию объекта.
Мы говорили об объекте, изменяющем свой тип. 
Так вот, это можно рассматривать как дублирова-
ние Объектом типа (Type Object) части функцио-
нальности паттерна Состояние (State).


Паттерны 
уменьшения 
связанности

Download 3,35 Mb.

Do'stlaringiz bilan baham:
1   ...   193   194   195   196   197   198   199   200   ...   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