Я мог бы воспользоваться советом / помощью по программному обеспечению, которое я разработал.
Приложение представляет собой приложение в стиле мастера, где пользователи заполняют поля в каждой форме, прежде чем перейти к следующей форме или вернуться к предыдущей. Довольно простой.
Прямо сейчас меню вызывает frmWiz1 (InitialData), и когда frmWiz1 возвращается с DialogResult.OK, меню вызывает frmWiz2 (frmWiz1.Data) (не совсем точно, оно хранит все данные из каждой формы и передает эти ссылки в следующая форма). Каждый объект данных наследуется от интерфейса IPrintable, который определяет методы для самой печати, поэтому на последней странице мастера (предварительный просмотр / подпись печати) он добавляет каждый объект Data в пользовательский объект PrintDocument, который просто выполняет итерацию по объектам данных, вызывая их функции печати и управление нумерацией страниц и т. д.
Сначала я думал, что это хорошая идея, но теперь я думаю, что:
- Форма меню обрабатывает слишком много логики потока.
- Объекты данных (которые обрабатывают всю бизнес-логику, относящуюся к их конкретному набору данных) должны быть отделены от логики печати (потому что, как они есть сейчас, они находятся в пространстве имен печати - возможно, простое перемещение заставит меня задуматься) в покое).
Я не знаю. Я неплохо с языком, но я все еще новичок в дизайне.