24种设计模式优缺点及适用场景#工厂方法模式
创建型#工厂方法模式
概述:
工厂方法是简单工厂模式的延伸,它继承了简单工厂模式的优点,同时还弥补了简答工厂模式的不足。工厂方法是最常用的设计模式之一,很多开源框架和API类库的核心模式。
优点:
1、用户只需要关心所需产品对应的工厂,无需关心创建细节,甚至无需知道具体产品类名;
2、所有的具体工厂类都具有同一抽象父类,被称为多态工厂模式;
3、符合开闭原则,新增产品只需要添加工厂类和具体产品,无需修改代码,扩展性好;
缺点:
1、添加一个新的产品,系统中类的个数增加,导致增加了系统的复杂性,有更多的类需要编译和运行,会增加系统性能的开销;
2、由于考虑到系统的可扩展性,需要引入抽象层,在客户端代码中均使用抽象层进行定义,增加了系统的抽象性和理解难度;
适用环境:
1、客户端不知道他所需要的对象的类。
2、抽象工厂类通过其子类来指定创建哪个对象。利用面向对象的多态性和里氏替换原则,在程序运行时子类覆盖父类对象,从而使得系统更容易扩展。
不积跬步无以至千里不积小流无以成江海