工厂方法:
抽象产品接口,具体产品实现,抽象工厂接口(接口中定义创建产品的抽象方法),具体工厂实现
良好的封装性只需要知道对象的类名既可以了;具有很强的扩展性,当需要扩展的时候,只要实现某个抽象接口就可以了;
普通工厂(静态工厂):
一个模块快仅需要一个工厂类,不需要做额外的扩展,这个时候只需要将工厂的这块改为一个普通类,然后定义一个静态的创建产品的普通方法就可以了,定义静态是为了简化调用,不需要创建工厂对象的实例,不需要做额外的扩展我们就可以不用定义接口;
抽象工厂:
当系统模块增多,会产生很多产品接口,并且有些不同的接口实现却有着相同的某些功能,所以单个工厂是无法满足这样的场景,必须定义一个抽象工厂和多个具体实现工厂;
https://blog.csdn.net/king123456man/article/details/82692800
