Я мог бы использовать две функции, и я бы сказал, что вызываемая функция должна иметь имя FloodFill
: пользователю не нужно знать, как реализована эта функция, поэтому ее не следует называть FloodFillRecursive
.
На самом деле, FloodFillRecursive
может быть именем внутренней функции: той, которая содержит реализацию, и той, которая вызывается той, которая вызывается пользователем, поскольку именно эта вторая функция является рекурсивной.,В идеале эта функция не должна быть видна пользователям: она должна быть скрыта в вашей библиотеке (будь то полностью скрытой или использовать какое-то соглашение об именах, которое информирует пользователей, что они не должны вызывать ее напрямую) .
И, таким образом, если вы измените реализацию, ваши пользователи не будут вызывать функцию FloodFillRecursive
, которая может больше не быть рекурсивной.