Как общий шаблон проектирования, манифесты полезны, когда вы хотите собрать всю информацию о разрозненном наборе объектов в одном месте. Это не должно быть о архивных / упакованных файлах, или о косвенности, чтобы позволить вещам быть перемещены без перекомпиляции / обновить оригинальные ссылки. Действительно, последний может создать больше проблем, чем решает, так что вы сделаете это только в том случае, если он решит конкретную вашу потребность.
Большое преимущество манифестов заключается в том, что они выступают в качестве указателя для большого количества данных в одном компактном месте. Таким образом они улучшают производительность (потому что вы можете просто загрузить весь манифест с диска и сохранить его в памяти), особенно в том случае , когда вам нужно перебрать несколько объектов, но вы не знаете заранее , что эти объекты будут . Если объекты находятся на диске, особенно если они находятся в разных местах, вы должны коснуться в файловой системе каждый раз , когда вы хотите перебрать файлы. Для файловых систем дисков на основе, время , необходимое , чтобы коснуться файловой системы непомерно высока, поэтому итерация файлов в каталоге , это огромная стоимость. Предварительно создавая манифест файлов во время сборки (примечание: не время компиляции), вы обмениваете эти затраты на использование памяти.
Архивные файлы требуют использования манифестов, просто потому что оглавление для архива по сути является самим манифестом, так что вы получаете поведение бесплатно. И если от вас требуется использовать манифесты для активов в одном месте, может быть лучше настаивать на том, чтобы на все активы ссылались через манифесты; позволяет вам абстрагировать фактическое место хранения / механизм активов от ссылок на эти активы в коде. Таким образом, в вашем коде может быть один тип ссылки на актив, и вам не нужно будет различать пути к файлам, путь к архивному файлу + смещение или подэлементы.