Factory methods insure that if any class/object changes will only affect/ripple inside the factory method it should NOT affect outside.
Factory method helps to avoid tight coupling from reciever to implementation.
Easy to migrate implementation to other implementation.
Easy to add new implementation without changing clients existing code.
Follows the Open/Closed Principle.