Шаблон для сохранения и записи в различные форматы файлов

StackOverflow https://stackoverflow.com/questions/81288

  •  09-06-2019
  •  | 
  •  

Вопрос

Существует ли шаблон, который удобно использовать при сохранении и загрузке различных форматов файлов?

Например, у меня сложная иерархия классов для документа, но я хочу поддерживать несколько различных форматов файлов.

Я думал о шаблоне Стратегии, но я не уверен из-за необходимости доступа к каждой части объекта, чтобы сохранить и загрузить его.

Это было полезно?

Решение

Вы могли бы использовать Шаблон посетителя, это позволяет выполнять итерации по вашей иерархии, выполняя различные операции в зависимости от узла, который в данный момент обрабатывает Посетитель.

Плохие новости:вероятно, вам нужно добавить хотя бы виртуальный метод на вершину иерархии и, возможно, переопределить его в некоторых производных классах, и посетитель по-прежнему будет получать доступ к данным узлов, но вы разделите формат файла, поскольку разные реализации visitors могут записывать данные, собранные разными способами.

Взгляните также на узор на память если необходимо скрыть данные иерархии классов. Эта статья это также может быть полезно.

Редактировать:Ссылка на оригинал Изделие с рисунком на память использование кэша Google

Другие советы

Возможно, вы захотите взглянуть на шаблон Builder.Страница 97..

Как насчет (чего-то, основанного на) Шаблон метода pattern?

Один суперкласс знает, как разрушить иерархию классов, но полагается на свои подклассы, чтобы действительно сделать с ними что-то полезное.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top