Game Programming Patterns / Паттерны программирования в играх
→But does that mean you should use observers all the time?
0 Но значит ли это, что нужно использовать наблюдателей все время?
→As we’ve seen, it’s simple, fast, and can be made to play nice with memory management.
0 Как видно, паттерн простой, быстрый, его можно настроить для прекрасной работы с управлением памятью.
→I think we’ve banished the two main boogie men used to scare people off this pattern.
0 Думаю, мы прогнали двух главных монстров, пугающих людей в данном паттерне.
→Remaining Problems
0 Оставшиеся проблемы
→That gives you a fixed-size pile of list nodes to work with, and you can use and reuse them as you need without having to hit an actual memory allocator.
0 Получается пачка узлов списка фиксированного размера, которую можно использовать, в том числе повторно, не трогая реальный распределитель памяти.
→The way you avoid dynamic allocation is simple: Since all of those nodes are the same size and type, you pre-allocate an Object Pool of them.
0 Избежать динамического выделения просто: так как все узлы имеют одинаковый размер и тип, можно заранее выделить место под "Объектный пул" (Object Pool) из них.
→They’re popular in places like the Linux kernel where that trade-off makes sense.
0 Они распространены в таких местах, как ядро Linux, где этот компромисс имеет смысл.
→That makes intrusive lists less flexible but, as we’ve seen, also more efficient.
0 Интрузивные списки менее гибкие, но, как мы видели, более эффективные.
→The latter style is called an “intrusive” linked list because using an object in a list intrudes into the definition of that object itself.
0 Второй вид связанного списка называется "интрузивным", потому что использование объекта в списке вторгается в его определение.
→the next_ pointer).
0 указатель next_).
→e.
0 есть,
→contained the node (i.
0 содержали узел (то
→In our previous linked observer example, that was flipped around: the data (in this case the observer)
0 В предыдущем примере со связанным наблюдателем было наоборот: данные (в данном случае, наблюдатель)
→In the one you learned in school, you have a node object that contains the data.
0 В первом, который проходят в школе, есть узловой объект, содержащий данные.
→We’re back to being able to observe multiple subjects simultaneously.
0 Теперь можно снова наблюдать за несколькими субъектами одновременно.
→Since multiple nodes can all point to the same observer, that means an observer can be in more than one subject’s list at the same time.
0 Из того, что несколько узлов могут указывать на одного наблюдателя, следует, что наблюдатель может находиться в нескольких списках субъекта в одно и то же время.
→Instead, they’ll be separate little “list node” objects that contain a pointer to the observer and then a pointer to the next node in the list.
0 Вместо этого, они представляют собой отдельные малые объекты "узла списка", содержащие указатель на наблюдателя и указатель на следующий узел в списке.
→However, those list nodes won’t be the observer objects themselves.
0 Однако узлы этого списка не являются объектами наблюдателя.
→Like before, each subject will have a linked list of observers.
0 Как прежде, каждый субъект имеет связанный список наблюдателей.
→A pool of list nodes
0 Пул узлов списка
Резюме
- Пол:
- женщина
- Родной язык:
- русский
- С нами:
- с 30 апреля 2014 г. (4554 дня)
- Деятельность:
-
917 версий перевода
с общим рейтингом 140
8 комментариев
Карма: 3 (оценок: 3)

