Функция должна выполнять только одно действие. Если функция выполняет 2 действия то функция разбивается.
Если у вас абстрактная функция которая работает с дженериками, значит и название нужно дать ей обобщенное.
Например можно назвать функцию
openFile(path: String) - которая открывает только файлы или..
openAtPath(path: String, type: TypeEnum) - которая открывает что угодно (ссылки в браузере, файлы и т.д.)
Такая функция внутри себя будет уже вызывать другие функции выполняющие конкретные задачи, а эта функция будет выполнять только одну задачу, определять какой тип ей передан и вызывать необходимую функцию для открытия чего либо.
Пример кривой может но смысл должен быть понятен.