简单工厂(静态工厂) :
只有一个工厂,工厂根据用户传入的值来创建对应的产品。
缺点:违反开闭原则;违反了高内聚责任分配原则,将全部创建逻辑集中到了一个工厂类中;它所能创建的类只能是事先考虑到的,如果需要添加新的类,则就需要改变工厂类了
工厂模式:
每个产品对应一个工厂,将简单工厂的创建逻辑放出给客户端。
优点:对比简单工厂,当新增一个产品的时候,只需要再新增一个工厂即可
缺点:客户端代码还是要修改,相当于原先需要工厂端判断的转移到客户端。
抽象工厂模式:
区别工厂模式:工厂方法模式只有一个抽象产品类,而抽象工厂模式有多个。
使用场景:系统的产品多于一个产品族,而系统只消费某一族的产品
即:工厂下面不是单个产品,而是产品族,不同的工厂对应不同的产品族,那么对工厂再进行一层抽象,这个时候就是抽象工厂模式了。