You have a long or complex method to implement. You want your code to be easy to develop, test and modify.
Look for logical steps in the solution of the method. Put the code to solve this step in a well-named helper method. For example, if the problem is for a robot to travel in a square pattern, the problem could be decomposed like this:
public void squareMove()
{ this.sideMove();
this.sideMove();
this.sideMove();
this.sideMove();
}
where sideMove is defined as follows:
private void sideMove()
{ this.move();
this.move();
this.move();
this.turnLeft();
}
Of course the problem may involve writing several different helper methods. Since helper methods are usually not services the class provides, they should generally be declared private or at least protected, depending on whether or not subclasses will need access to them.
Long or complex methods are easier to read, develop, test and modify.