Предполагая, что у меня есть некоторая структура данных для работы (например, изображений), которые я хочу предварительно и постобработка по-разному, чтобы облегчить дальнейшие шаги обработки. Каков наилучший способ реализовать эту ответственность с помощью языка ООП, такого как C++?Дизайн кода: Кто отвечает за изменение данных объекта?
Предполагая, что у меня есть много разных алгоритмов обработки с присущей сложностью, я очень хочу их инкапсулировать в выделенные классы. Это означает, однако, что реализации алгоритмов извне должны установить некоторую информацию в моих данных, чтобы указать, что она была обработана. И это также не выглядит как чистый дизайн для меня, потому что обработанный выглядит как информация, связанная с данными, и, таким образом, сам объект данных должен определять и устанавливать самостоятельно.
Он также выглядит очень распространенным источником ошибок в сложных приложениях: кто-то реализует другой алгоритм обработки, забывает устанавливать флаги в данных соответствующим образом, что-то в совершенно разных частях приложения не будет работать должным образом, а кто-то будет весело наблюдать за ошибкой.
Может ли кто-то описать общую структуру хорошего и неудачного способа реализовать sth, как это?