Это терминологический вопрос, который трудно задать!
Позвольте мне привести пример.Предположим, я пишу алгоритм символьного дифференцирования.У меня есть абстрактный класс Exp, который является суперклассом группы типов выражений (суммы, интегралы, что угодно).Существует абстрактная производная метода, такая, что e.derivative () должен быть производной выражения e.Все конкретные подклассы Exp (представьте здесь целую иерархию) реализуют производный метод, который собирает знания о том, как различать выражения этого типа.Данный метод обычно вычисляет производную выражения путем объединения производных подвыражений.
Детали примера не важны.Важно то, что все эти рассеянные методы могут рассматриваться как части одного (рекурсивного) алгоритма.Это не относится ко всем методам, но справедливо для многих из них (и использование перегрузки для повторного использования одного и того же имени метода для принципиально разных операций считается плохой идеей).Вопрос в том, что означает термин «производная», рассматриваемый как единая функция?Это не метод;на другом языке это была бы функция, и различные предложения (что делать с суммами, что делать с интегралами) были бы в одном месте.Мне все равно, какой подход или язык лучше, или этот стиль можно использовать в Java.Я просто хочу знать, какой термин использовать для «производного», рассматриваемого как отдельная функция или процедура (идея не ограничивается функциональным программированием и не является рекурсией ключевой функцией).Когда я рассказываю кому-то о том, что я сделал сегодня, я хотел бы сказать: «Я пытался реализовать символьную дифференциацию __ , но каждый алгоритм, о котором я думал, не работал».Что пусто?
Я предполагаю, что та же проблема возникает и для других ОО-языков, но я больше всего знаком с Java.Я настолько знаком с этим, что я почти уверен, что стандартного термина нет, но я подумал, что спрошу нашу группу экспертов, прежде чем делать такой вывод.