设计模式--工厂方法模式和简单工厂模式和抽象工厂模式

定义:父类负责定义创建对象的公共接口,而子类负责生成具体的对象,目的是将类的实例化操作延迟到子类中完成,即由子类决定究竟应该实例化哪个类。
使用场景:复杂类的创建。

优点:
1.能够封装复杂类创建,这样面向接口编程,实现类接口和实现的分离,这样在切换产品类的时候更加的灵活,容易。
2.能够隐藏创建类的具体信息。
3.具有很好的扩展性,如果需要添加新的功能的时候,只需要添加新的工厂和具体的产品类即可。

缺点:
1.如果需要创建多个对象,那么就需要多个具体的工厂的子类,这样就会增加类的数量。
2.如果需要修改抽象类,那么所有的具体类都要进行修改。
简化办法:可以使用传递类.class参数的办法,使用反射的方法创建对象,这样就将工厂方法模式简化成简单工厂模式。

工厂方法模式和抽象工厂模式的区别:抽象工厂模式是工厂方法模式的进一步的丰富。工厂方法模式只能有一个抽象的工厂类,并且只能有一个抽象的产品类。在每个具体的工厂类中只能创建一个产品的实例。 而抽象工厂方法模式可以有多个抽象的工厂类,并且也可以有多个的抽象的产品的类。在每个具体的工厂类中,可以创建多个产品的实例,并且这些产品可以有不同的抽象类。

因此学会工厂方法模式,就知道简单工厂模式和抽象工厂模式。

一、工厂方法模式
①抽象产品类
这里写图片描述
②具体产品类
这里写图片描述
③抽象工厂类
这里写图片描述
④具体工厂类
这里写图片描述
⑤使用
这里写图片描述
二、简化工厂方法模式(由于使用工厂方法模式,如果需要多个工厂,那么就增加类的数量,可以使用反射的方法创建对象,形式类似简单工厂模式)
①抽象工厂
这里写图片描述
②具体工厂
这里写图片描述
③使用
这里写图片描述

猜你喜欢

转载自blog.csdn.net/yuezheyue123/article/details/82586995