В OOD принцип единой ответственности обычно рекомендует, чтобы у класса была только одна причина для изменения . Пример, который вы описываете, явно попадает в случай, когда вы, вероятно, не не хотите смешивать генерацию и обработку форм.
Однако, в вашем примере, вы, кажется, имеете три различных обязанности:
- Структурное представление формы, полное определения полей и т. Д.
- Процесс преобразования формы в HTML, который преобразует форму в представление HTML.
- Процесс отправки формы, который оценивает представленные данные и создает «заполненную» форму записи (которая может даже быть четвертой областью ответственности).
Конечно, возможно объединить любое количество этих обязанностей вместе - я думаю, вы обнаружите, что разделение может создавать ценность, в том числе:
- Разделение реализаций
- Точки расширения на будущее
- Отделение представления данных от действий по обработке