Какова цель примера «Порода» в этих объяснениях «Шаблон дизайна объекта типа»? - PullRequest
0 голосов
/ 09 октября 2019

Это два из лучших объяснений шаблона проектирования «Тип объекта», которые я смог найти, и я не смог найти много;

Я полностью понимаю, что нужно избегать создания файла класса для каждого нового типа путем создания общего класса "Unit" (как в случае стратегической игры), в котором класс Unit содержитвсе различные переменные, которые может иметь единица, и вместо этого загружать эти данные из файла в зависимости от того, какой единицей он должен быть. Это означает, что создание новых модулей означает создание новых файлов данных вне кода, без перекомпиляции, и задача может быть передана конструктору.

Чего я не понимаю, так это объяснения наличия «породы»«класс - оба объяснения плохо объясняют, как он решает начальную проблему;кажется, что это просто переносит проблему в класс породы. Хотя я знаю, что это не то, что они говорят.

1 Ответ

0 голосов
/ 11 октября 2019

Я думаю, что понял;это просто держатель данных. Если каждый раз, когда монстр запускается, он попадает на жесткий диск, чтобы получить данные, это будет медленно. Таким образом, породы являются единственными, кто попадает на жесткий диск, один раз для каждой породы - вы просто делаете их для любого количества пород, которые есть в файле данных (на основе файла данных, а не жестко закодированы), и, возможно, помещаете их вкарта значений ключей, чтобы вы могли искать их по текстовой строке. И затем, когда Monster создается из данных уровня, вы можете найти, с какой породой он должен ассоциироваться, по строке этого типа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...