Возможно, вам следует взглянуть на схему «цепи ответственности».Цель этого шаблона очень близка (если не равна) тому, что вы выражаете.Цепочка ответственности состоит из нескольких общих элементов, которые могут обработать запрос.В вашем случае запрос - это ваш массив;каждая команда может изменить массив;после обработки массива каждая команда вызывает следующую команду в цепочке ответственности.
Этот шаблон очень четко объясняется в «шаблоне проектирования» GoF.