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


Возможно, вы захотите взглянуть на паттерн Строитель. GoF стр. 97 ..
Как насчет (чего-то основанного) Шаблон метода шаблона?
Один суперкласс знает, как разорвать иерархию классов, но полагается на свои подклассы, чтобы сделать с ними что-то полезное.
Вы можете использовать Шаблон посетителя, он позволяет перебирать вашу иерархию, выполняя различные операции в зависимости от узла, который посетитель обрабатывает в данный момент.
Плохая новость: вам, вероятно, нужно добавить хотя бы виртуальный метод наверху иерархии и, возможно, переопределить его в некоторых производных классах, и посетитель по-прежнему получает доступ к данным узлов, но вы разделяете формат файла, как разные посетители реализации могут записывать собранные данные разными способами.
Взгляните также на сувенирный узор, если необходимо скрыть данные иерархии классов. Эта статья также может быть полезным.
Обновлено: ссылка на исходный Статья с выкройками на память с использованием кеша Google
Вау, как будто 7 лет; и я даже не помню название статьи, извините
хорошие новости, нашел с помощью кеша гугла: webcache.googleusercontent.com/search?q=cache:www.ondotnet.c om /…
Ваша ссылка на статью с выкройкой на память не работает. У тебя есть еще один хороший?