void RunFunction(string FunctionName, string[] args) { foreach (AbstractFunction Func in Functions) { if (Func.FunctionName == FunctionName) { //Реализация паттерна Шаблонный метод Func.AccessModel(); // Получить доступ к модели графиечского редактора Func.SendArgs(args); // Передаём агрументы в функцию скриптового языка Func.Overload(); // Выбор реализации при перегрузке Func.DealWithModel(); // Работаем с моделью Func.Reset(); // Очищаем память от лишних значений } } }