- проверить аргументы То есть у нас набор аргументов задает некоторый тип, к которому положена функция-валидатор. Я не готов утверждать, что это изоморфно классу с конструктором, но до отвращения похоже. - породить из них какие-то локальные объекты, при неудаче выругаться (часто контекст-специфично), перейти по goto в конец, где за собой убирают Задержанная инициализация, которая, если мы не кидаемся исключениями, возвращает код ошибки, который мы можем скормить специфичной для типа функции, чтобы получить смысл. Ах, да, и убрать за собой. Хм... пара методов и деструктор. - сделать содержательные шаги, тоже проверив, что каждый из них удался, при ошибке перейти к освобождению Если мы продолжаем оставаться в ООП-парадигме, то это, по сути, перегруженный для каждого подкласса абстрактный метод. - присвоить содержательный результат возвращаемой переменной Ну это не проблема в какой угодно парадигме - освободить вот это вот всё (3-4-много объектов) Деструктор! - вернуть результат Не проблема.
Итого это все выглядит подозрительно похоже на галерею типов с однообразным интерфейсом. Я тут не готов махать руками за изоморфность, но варианты реализации "в общем виде" могут сводиться к вариантам того, как сходная задача решена под капотом в плюсах, джаве или, к примеру, голанге.
no subject
- проверить аргументы
То есть у нас набор аргументов задает некоторый тип, к которому положена функция-валидатор. Я не готов утверждать, что это изоморфно классу с конструктором, но до отвращения похоже.
- породить из них какие-то локальные объекты, при неудаче выругаться (часто контекст-специфично), перейти по goto в конец, где за собой убирают
Задержанная инициализация, которая, если мы не кидаемся исключениями, возвращает код ошибки, который мы можем скормить специфичной для типа функции, чтобы получить смысл. Ах, да, и убрать за собой. Хм... пара методов и деструктор.
- сделать содержательные шаги, тоже проверив, что каждый из них удался, при ошибке перейти к освобождению
Если мы продолжаем оставаться в ООП-парадигме, то это, по сути, перегруженный для каждого подкласса абстрактный метод.
- присвоить содержательный результат возвращаемой переменной
Ну это не проблема в какой угодно парадигме
- освободить вот это вот всё (3-4-много объектов)
Деструктор!
- вернуть результат
Не проблема.
Итого это все выглядит подозрительно похоже на галерею типов с однообразным интерфейсом. Я тут не готов махать руками за изоморфность, но варианты реализации "в общем виде" могут сводиться к вариантам того, как сходная задача решена под капотом в плюсах, джаве или, к примеру, голанге.