回到简单工厂模式,所有的水果都在这一个工厂里生产,那么每添加一种水果,就需要添加一个方法,或者说是要修改代码,而且水果越多,工厂类越庞大
这很明显违反了两个原则:
1、单一职责原则:一个工厂生产多种水果,而不是一种
2、开闭原则:添加水果需要修改工厂类的代码
工厂方法模式
将生产水果的方法抽象成一个接口,对于每种水果都创建一个工厂实现该接口
工厂方法模式
这种实现模式,如果有新的水果需要添加,新建一个工厂类即可,同时遵守了单一职责原则和开闭原则
总结
工厂方法模式的目的是为了让功能单一化,具备扩展性(单一职责原则,开闭原则)