Для класса шаблонов проектирования преподаватель попросил мою команду разработать приложение, которое поддерживает рисование и сохраняющиеся глифы, очень похожие на редактор WYSIWYG из GoF.Неправильное использование шаблона Builder?
Моя команда решила использовать слоистую архитектуру с нисходящими слоями: презентация, контроллер, логика, стойкость.
Logic поддерживает коллекцию представлений глифов, их соответствующих позиций и некоторых уникальных свойств. Инструктор предложил использовать шаблон Builder для создания единого механизма сохранения, поскольку CSV и XML необходимы форматы сохранения.
Проблема возникает, когда мы пытаемся спроектировать Builder в слое Persistence. Поскольку мы используем слои, то на уровне Persistence не разрешается явно указывать типы Glyph, не говоря уже о том, чтобы отбросить их из своей абстрактной формы в их отдельные формы. Это заставляет меня почесывать мою голову тем, что даже передать каждому строителю в качестве своего конструктора.
Следующая проблема заключается в том, что трудно обобщить типы, которые берет Builder. Прямоугольники имеют свойства, которые Lines нет.
У меня проблемы с пониманием, как это сделать. Я понимаю шаблон Builder, но что-то просто не щелкает. Я неправильно использую шаблон, или я не правильно подхожу к проблеме?
Редактировать: Инструктор не сказал, что мы должны загружать сохраненные форматы обратно. Мое окончательное решение должно, очевидно, сделать это легко, но для моей текущей проблемы я сосредоточен только на сохранении.
Я в конечном итоге пошел в другом направлении, но это действительно помогло. Отличная почта, и спасибо! – Mike