То есть мне полюбому в каждой функции которая будет производить какие-то перемены, нужно будет создавать новую команду и добавлять её в стак ?
А если я эту функцию буду вызывать из Undo/Redo, у меня создастся автоматом другая redo/undo комманда, да и как отличить когда вызывается комманда из undo или из redo? Добавить дополнительные параметры в функцию ?
Или для каждого типа операций создавать свой класс комманды ?
Как тут ?
Я так понял именно так делается в паттерне Command?