нет, речь о минимальном наборе действий - что может быть проще, чем
context.discount = getNewDiscount(…)
Simple не Easy. А потом в цепочке респонсибилитей пара звеньев поменяется местами, одно уйдет, другое добавится, и какое нить шальное звено попытается прочитать свойство DTOшки, которое еще не было правильно проинициализировано другим звеном. Как вариант можно между звеньями не DTOшку передавать, а обертки над неким мутируемым состоянием, которые защищают инварианты.