之前看了一些工厂模式的介绍,在此记录一下:
1.简单工厂:通过实现接口创建具体的产品,一个工厂可以生产不同的产品,客户端通过工厂就可以得到具体的产品而不需要主动创建。 但是如果需要新产品的话就需要去修改工厂里的方法,增加新产品的判断。
2.工厂方法模式:简单理解就是不去修改工厂里的方法,从而可以添加新的角色,这种类似于通过反射获取对象实例,具体的产品可以实现接口进行增加,工厂里的方法只要通过反射拿就可以。
3.抽象工厂模式:可以创建多种类型产品的其他功能(产品族),比如地图的话就需要定位、导航等多种功能,而百度地图和高德地图都要有这些功能,这样可以把定位和导航功能抽出来两个接口,然后百度和高德是要单独创建出来工厂去生产各家的产品,所以需要一个接口作为抽象的工厂,这个工厂里要有抽象的定位和导航等功能,具体的实现就要具体的工厂去处理。
这个对添加新产品不太好
具体的话可以查看一些例子。
网友评论