У меня есть тесно связанное приложение, которое я переписываю. Модель данных хранится в библиотеке классов, в настоящее время все объекты доступны как открытые. Есть несколько компонентов пользовательского интерфейса, которые работают с различными объектами. В главном окне есть процедура для генерации отчета путем циклического просмотра базовых классов, хранящихся в модели, и добавления соответствующих страниц в зависимости от типа объекта.
Мое намерение - реализовать фабричный шаблон, чтобы пользовательский интерфейс знал только об интерфейсе. Затем я буду хранить объекты в модели как частные. Но это означает, что я должен выдвигать отчеты в модель и предоставлять метод GetPages () в интерфейсе для составления отчета. Каждый конкретный объект будет предоставлять свою часть отчета.
Я бы предпочел, чтобы модель не знала, как об этом сообщают. Как я могу это сделать?