Long functions are hard to work with. They are often contained in large classes that have many dependencies. The work that it takes to bring such functions and classes into a test harness is often significant. The Break Out Command Object refactoring technique can help with that.
Break out command object
