Game Programming Patterns / Паттерны программирования в играх

→Since every dependency that a subclass has ends up flowing through the base class first, it can end up large and deeply coupled to the rest of the game.
0 Поскольку каждая зависимость, которую используют подклассы, проходит сначала через базовый класс, в конечном итоге он окажется очень сильно связан с остальной частью игры.
→It can make the base class overly heavy
0 Он может сделать базовый класс чрезмерно тяжёлым.
→Keep in Mind
0 Имейте в виду
→You want to minimize coupling between those derived classes and the rest of the program.
0 Вы хотите минимизировать связность между этими производными классами и остальной частью программы.
→There is behavioral overlap in the subclasses and you want to make it easier to share code between them.
0 В подклассах есть перекрывающееся поведение и вы хотите упростить разделение кода между ними.
→The base class is able to provide all of the operations that a derived class may need to perform.
0 Базовый класс в состоянии предоставить все операции, которые могут понадобиться производному классу.
→You have a base class with a number of derived classes.
0 Вы имеете базовый класс с рядом производных классов.
→A Subclass Sandbox is a good fit when:
0 Подкласс песочницы хорошо подходит, если:
→If you have a non-virtual protected method laying around, you’re probably already using something like this.
0 Если у вас кругом лежат невиртуальные защищённые методы, вполне возможно, что вы уже используете нечто подобное.
→This is a very simple, common pattern lurking in lots of codebases, even outside of games.
0 Этот очень простой, общий шаблон скрывается во множестве кодовых баз, даже за пределами игр.
→When to Use It
0 Когда использовать
→Each derived sandboxed subclass implements the sandbox method using the provided operations.
0 Каждый производный подкласс песочницы реализует метод песочницы, используя предоставленные операции.
→Marking them protected makes it clear to that they are for use by derived classes.
0 Пометка их как защищённых, даёт понять, что они нужны для использования в производных классах.
→A base class defines an abstract sandbox method and several provided operations.
0 Базовый класс определяет абстрактный метод песочницы и предоставляет несколько операций.
→The Pattern
0 Шаблон
→Inheritance is problematic — there’s really no deeper coupling in a codebase than the one between a base class and its subclass — but I find wide inheritance trees to be easier to work with than deep ones.
0 Наследование здесь сомнительно — связей в кодовой базе глубже одной, между базовым классом и его подклассами, нет — но я обнаружил, что с широкими деревьями наследования работа проще, чем с глубокими.
→Lately, you find a lot of people criticizing inheritance in object-oriented languages.
0 В последнее время вы обнаружите множество людей, критикующих наследование в объектно-ориентированных языках.
→Time and love that we put into Superpower can benefit a wide set of classes in the game.
0 Время и любовь, которые мы вкладываем в класс Superpower, могут принести выгоду широкому набору классов в игре.
→By having a single class with a lot of direct subclasses, we have a point of leverage in our codebase.
0 Имея один класс с множеством прямых подклассов, мы имеем точку опоры в нашей кодовой базе.
→Your inheritance chains aren’t deep, but there are a lot of classes that hang off Superpower.
0 Ваши цепочки наследования не глубокие, но есть множество классов, свисающих с Superpower.
Резюме
Пол:
мужчина
Родной язык:
русский
С нами:
с 19 июля 2011 г. (5570 дней) по приглашению notabenoid
Деятельность:
2344 версии перевода с общим рейтингом 540
128 комментариев
Карма: 7 (оценок: 7)
Написать Mingun личное сообщение