工厂模式分为 简单工厂模式、工厂方法、抽象工厂 三种
简单工厂
1.抽象工厂角色
2.抽象产品角色
3.具体工厂角色
4.具体产品角色
当需要生产一个产品的时候,只需要传入对应的产品key就可以获取对应的产品对象。
当需要新增产品的时候,可以重新实现抽象工厂,在里面进行添加,符合开闭原则
简单工厂是一种特殊的工厂方法
工厂方法
1.抽象工厂角色
2.抽象产品角色
3.具体工厂角色
4.具体产品角色
这里一个工厂只能生产一种产品,符合开闭原则,但是一旦需要生产的产品过多,相对应的工厂类也会增加
抽象工厂
1.抽象工厂角色
2.抽象产品角色
3.具体工厂角色
4.具体产品角色
抽象工厂是生产一类产品
当需要增加产品等级,类似在车工厂里面,新增加跑车生产线,这个时候就需要修改抽象工厂的代码,并且之前的所有实现抽象工厂的类都要修改。这个不符合开闭原则,或者说这是开闭原则的倾斜性。
PS:开闭原则,意思只能扩展,不能修改代码