1.简介
隐藏复杂逻辑的处理过程,注重结果
现实生活:我们需要一辆车,只需要关注这辆车生产后的,生产过程不用管,也不管生产车的工厂
2.简单工厂
实现:通过接受不同参数来返回不同对象实例
问题:仅同过一个工厂生产不同的产品,业务逻辑紊乱,维护困难
升级:给每个产品建个工厂,业务逻辑单独处理,高内聚——>工厂方法
3.工厂方法
实现:针对每一个产品提供一个工厂,要获得产品要先获得工厂的实例,然后再获得产品
问题:增加了代码的使用复杂度,每次获得产品还要新建一个工厂
升级:把工厂抽象出来——>抽象工厂
4.抽象工厂
实现:在工厂方法的基础上把工厂抽象出来