Printed part auto-eject (automatic part removal)
While the "best" method is probably unanswerable since it would be based on very specific requirements and subject to change as soon as a better method were devised, here are some feasible methods to auto-eject 3d printed parts.

Some of these are methods that I've considered for my personal use, others have been mentioned by others and added for helpful reference.  Some have been done, others have not (I think), but all of them are feasible.

Scrolling Conveyor-type Bed:


In this concept, parts become dislodged from the print surface as it is deformed around a roller in the process of scrolling to the next position.  Scrolling bed designs must make allowances to prevent parts from lifting up the bed material which becomes an issue especially with warp-prone materials.  Note: This is the basis of the Automated Build Platform (ABP) originally designed (as far as I can tell) by Charles Pax and later covered in several patents by Makerbot Industries.


Deforming Bed:


In this concept, the bed is mechanically deformed when the part removal temperature has been reached.  This deformation dislodges the part which can then be easily swept off of the bed by an arm or similar mechanism.  (As far as I know, this concept has not yet been demonstrated.)


Articulated Segmented Bed:


In this concept, the bed is comprised of several strips. Slightly lowering a portion (let's say half) of the strips would separate them from the part, then slightly raising that portion would separate the part from the remaining strips.  (As far as I know, this concept has not yet been demonstrated.)


Eject and Replace Bed:


This method ejects the entire bed surface along with the finished parts and then receives a fresh print surface for the next print.  This method would likely still require intervention to remove parts from used print surfaces and then return them to the clean stack. (As far as I know, this concept has not yet been demonstrated.)


Plow:


This method mentioned by Fred_dot_u and AllanL uses a specially designed plow arm to sweep parts off the bed between prints.  This method has been effectively demonstrated in this video by New Valance Robotics Corporation that was mentioned by AllanL (thanks!).


Issues using print head to eject parts:  While this method has been tried, and demonstrated (see below), it has some challenges/drawbacks.


Typical FDM/FFF 3d printers are not designed to apply significant force behind print head movements.  While a printer designed specifically for this purpose could be built, using a typical printer in this way is extremely likely to cause the stepper motors to loose steps and result in loss of position accuracy unless parts separate very easily. (however, position could easily be regained by zeroing via limit switches between prints.)  
In addition to skipping steps, mechanical issues such as ratcheting/skipping belts or unwanted frame movement could result from even moderately stuck prints.


Examples of pushing or ramming parts off of bed:
While using various parts of the printer to push parts off of the bed may not be an ideal solution, it may be an adequate solution for specific circumstances.  Here are a few demonstrations of the "ramming" method.


Ramming parts off with frame and moving bed like this.
Ramming part with robust print head like this.
Ramming easy to remove part with print head like this.


Interesting question.  I hope this helps!