将创建实例需要大量初始化工作从构造函数中分离出来-------创建实例的工作和使用实例的工作分开。
工厂方法确实为系统结构提供了非常灵活强大的动态扩展机制,只要我们更换一下具体的工厂方法,系统其他地方无需一点变换,就有可能将系统功能进行改头换面的变化。