设计模式之工厂方法模式
工厂方法模式(Factory Method Pattern):定义一个用于创建对象的接口,但是让子类决定将哪一个类实例化。工厂方法模式让一个类的实例化延迟到其子类。
类图如下:
工厂方法类图
抽象和据图产品类代码如下,接口抽象出产品的共同方法,
抽象产品和具体产品
抽象工厂和具体工厂:
抽象工厂和具体工厂
场景类的调用代码如下:
场景类的调用代码
工厂方法的优点:
1、可扩展性,添加一个产品不用修改原来的代码,可以添加一个产品的实现类和一个工厂的实现类即可。
2、隔离性,客户端只知道工厂就行,不需要知道创建产品的细节,实现系统解耦。
缺点:
1、每次增加一个产品都会增加相应的工厂类,这个可以用反射方式实现,避免过多的工厂类。
工厂方法有好多的扩展和转换,即可以缩小为简单工厂,也可以扩展为延迟功能的工厂方法等。
领取专属 10元无门槛券
私享最新 技术干货