Опишу ситуацию: есть флоу заполнения формы из пяти шагов, каждый в виде отдельной страницы, на первом шаге есть кнопка 'Next', со второго по четвёртый есть кнопки 'Previous', 'Next' и 'Save', на пятом нету ничего. Вопрос: как в плане структуры это будет организовано в проекте? Будут сущности Page для каждого шага, где-то отдельно будет сущность NavigationComponent, с описанием всех трех кнопок? Или для каждой кнопки отдельный класс или интерфейс?
например: будет 5 объектов для каждой страницы (ну или как минимум 5 - возможно имеет смысл разбивать объекты на более мелкие виджеты).
С навигацией зависит от того, как оно запрограммировано. Если навигация отдельная компонента - логично сделать (один) объект для неё. Но часто кнопки только выглядят одинаково, но на самом деле каждая forward-back кнопка уникальна (или закопипащена). Тогда логично не пытаться изобрести наследование или композицию там, где их нет - а обрабатывать кнопки или как часть "шага" или отдельными виджетами.