工厂方法模式,创建型设计模式之一,其核心在于父类提供创建对象的接口,子类决定具体实例化方式。其主要意图是定义对象创建的接口,允许子类决定具体实例化对象的类型,从而实现代码结构的扩展性。该模式通过让外部仅需调用接口,而无需了解内部实现细节,解决接口选择问题。工厂方法模式优势在于:避免创建者与...    
小傅哥《重学JAVA设计模式》学习笔记一:创建者模式之工厂方法模式
    工厂方法模式,创建型设计模式之一,其核心在于父类提供创建对象的接口,子类决定具体实例化方式。其主要意图是定义对象创建的接口,允许子类决定具体实例化对象的类型,从而实现代码结构的扩展性。该模式通过让外部仅需调用接口,而无需了解内部实现细节,解决接口选择问题。
工厂方法模式优势在于:
避免创建者与具体产品逻辑耦合,实现业务逻辑与产品创建分离;单一职责原则的满足,每个业务逻辑由独立类实现;遵循开闭原则,新增产品类型无需修改使用方。
然而,工厂方法模式的局限性是如果产品类型众多,子类数量会迅速增加,导致代码维护困难。
实例模拟中,以积分兑换不同商品为例,通过接口定义商品类型,具体实现由子类提供。传统实现方式采用 if/else 语句,根据不同的积分类型调用相应的商品发放逻辑。但这种方法代码冗余,且扩展性差。
工厂方法模式优化则通过定义抽象的发奖接口,具体实现类实现不同商品的发放逻辑,再通过工厂类根据需求选择调用对应实现类。此方法简化了代码逻辑,便于新增商品类型。
总结而言,工厂方法模式通过继承和抽象接口实现,提供了灵活的创建对象机制,适合于扩展性需求高的场景,但在产品类型众多时,需权衡类的复用性和扩展性。
欲了解更多深入内容,欢迎关注小傅哥微信公众号:bugstack虫洞栈2024-09-07