简单工厂模式
(也称为静态工厂模式)由一个工厂对象负责创建所有产品类的实例。客户端通过传入一个参数给工厂类来请求创建哪种产品类的实例。这种模式的优点在于客户端不需要知道具体的产品类,只需要知道对应的参数即可。缺点是当需要添加新产品时,需要修改工厂类的判断逻辑,这违背了开闭原则。
工厂方法模式
定义了一个用于创建对象的接口,由子类决定实例化哪个产品类对象。这种方式将对象的创建延迟到子类中,使得系统更加灵活和可扩展。工厂方法模式的优点在于解耦合,将对象的创建和业务逻辑层分开,避免将来修改客户端代码。缺点是当增加新产品时,还需要修改工厂类代码。
抽象工厂模式
提供了创建产品的接口,调用者通过它访问具体工厂的工厂方法来创建产品。这种方式适用于当系统需要创建多个系列的产品时,如一个制造汽车系统可能需要创建SUV和BMW等多种车型。抽象工厂模式包含抽象工厂、具体工厂、抽象产品和具体产品等角色,通过这种方式可以进一步提高代码复用和提高系统的可扩展性。