认识工厂方法模式
1:工厂方法模式的功能
工厂方法的主要功能是让父类在不知道具体实现的情况下,完成自身的功能调用,而具体的实现延迟到子类来实现。
2:实现成抽象类
工厂方法的实现中,通常父类会是一个抽象类,里面包含创建所需对象的抽象方法,这些抽象方法就是工厂方法
3:实现成具体的类
也可以把父类实现成为一个具体的类,这种情况下,通常是在父类中提供获取所需对象的默认实现方法,这样就算没有具体的子类,也能够运行 。
4:工厂方法的参数和返回值
工厂方法的实现中,可能需要参数,以便决定到底选用哪一种具体的实现。
一般工厂方法返回的是被创建对象的接口对象,当然也可以是抽象类或者一个具体的类的实例。
5:谁来使用工厂方法创建的对象
(1)在工厂方法模式里面,应该是Creator中的其它方法在使用工厂方法创建的对象
(2)客户端应该是使用Creator对象,或者是使用由Creator创建出来的对象,这个时候工厂方法创建的对象,是Creator中的某些方法使用。
(3)在某些情况下,客户端可能会使用由Creator创建出来的对象,这个时候工厂方法创建的对象,是构成客户端需要的对象的一部分。
小结一下:在工厂方法模式里面,客户端要么使用Creator对象,要么使用Creator创建的对象,一般客户端不直接使用工厂方法。当然也可以直接把工厂方法暴露给客户端操作,但是一般不这么做。
工厂方法模式的调用顺序示意图
先看看客户端使用由Creator创建出来的对象情况的调用顺序示意图
接下来看看客户端使用Creator对象时候的调用顺序示意图
相关推荐
《研磨设计模式之工厂方法模式》是一本深入解析Java设计模式的专业书籍,特别是对工厂方法模式进行了详尽的探讨。设计模式是软件工程中的一种最佳实践,它们是解决常见问题的经验总结,使得代码更加可读、可维护和可...
《研磨设计模式源码》是一份非常宝贵的资源,它提供了设计模式的实践代码,帮助开发者深入理解并应用这些模式。设计模式是软件工程中经过长期实践总结出来的一套通用解决方案,它们描述了在特定场景下如何解决常见...
包括责任链模式(Chain of Responsibility)、命令模式(Command)、解释器模式(Interpreter)、迭代器模式(Iterator)、中介者模式(Mediator)...Strategy)、模板方法模式(Template Method)和访问者模式(Visitor)...
第6章 工厂方法模式(Factory Method) 第7章 抽象工厂模式(Abstract Factory) 第8章 生成器模式(Builder) 第9章 原型模式(Prototype) 第10章 中介者模式(Mediator) 第11章 代理模式(Proxy) 第12章 ...
《研磨设计模式》完整覆盖GoF讲述的23个设计模式并加以细细研磨。初级内容从基本讲起,包括每个模式的定义、功能、思路、结构、基本实现、运行调用顺序、基本应用示例等,让读者能系统、完整、准确地掌握每个模式,...
模板方法模式(Template Method)在抽象类中定义一个操作中的算法骨架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 在《研磨设计模式》这本书中,作者通过丰富...
工厂方法模式是一种创建型设计模式,它提供了一种创建对象的最佳方式。通过使用工厂方法,我们可以在不指定具体类的情况下,创建对象。这种模式使得系统更具扩展性,因为添加新的产品类型只需要创建新的工厂,而无需...
创建型模式主要关注对象的创建过程,如单例模式、工厂方法模式和抽象工厂模式等,它们能够在不同的情况下提供合适的对象创建方式,降低代码之间的耦合度。结构型模式关注如何组合类和对象以实现更复杂的设计,如...
研磨设计模式之 工厂方法模式.doc
“1.1 设计模式是什么 1.1.1 什么是模式 从字面上理解,模,就是模型、模板的意思;式,就是方式、方法的意思。综合起来,所谓模式就是:可以作为模型或模板的方式或方法。... “研磨设计模式”。 iBooks.
8. 模板方法模式:模板方法定义了一个操作中的算法骨架,而将一些步骤延迟到子类中。它使得子类可以在不改变算法整体结构的情况下,重定义某些步骤。 9. 策略模式:策略模式定义了一系列算法,并将每个算法封装起来...
《研磨设计模式》完整覆盖GoF讲述的23个设计模式并加以细细研磨。初级内容从基本讲起,包括每个模式的定义、功能、思路、结构、基本实现、运行调用顺序、基本应用示例等,让读者能系统、完整、准确地掌握每个模式,...
《研磨设计模式》是一本深入探讨软件设计模式的经典书籍,源代码包含了书中所讲解的各种设计模式的实际应用示例。设计模式是软件工程中的重要概念,它们是经过反复验证、在特定情境下解决常见问题的有效解决方案。...
1. **创建型模式**:这类模式主要关注对象的创建过程,如单例模式(Singleton)、工厂方法模式(Factory Method)、抽象工厂模式(Abstract Factory)、建造者模式(Builder)和原型模式(Prototype)。它们提供了...
行为型模式关注对象间的行为分配,如策略模式、观察者模式、访问者模式、责任链模式、命令模式、解释器模式、迭代器模式、备忘录模式、状态模式、模板方法模式和访问者模式,它们处理对象间的通信和行为。...
《研磨设计模式》完整覆盖GoF讲述的23个设计模式并加以细细研磨。初级内容从基本讲起,包括每个模式的定义、功能、思路、结构、基本实现、运行调用顺序、基本应用示例等,让读者能系统、完整、准确地掌握每个模式,...
14. **模板方法模式**:定义一个操作中的算法骨架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 15. **状态模式**:允许一个对象在其内部状态改变时改变它的行为...
内容概述:本视频课程是北京Java私塾原创精品书籍《研磨设计模式》一书的配套学习视频,由《研磨设计模式》的第一作者CC录制 课程目标:全面、系统的掌握GoF设计模式的知识,达到可以在实际项目开发中运用的能力 ...
《研磨设计模式》完整覆盖GoF讲述的23个设计模式并加以细细研磨。初级内容从基本讲起,包括每个模式的定义、功能、思路、结构、基本实现、运行调用顺序、基本应用示例等,让读者能系统、完整、准确地掌握每个模式,...
本文将深入探讨五个关键的设计模式:单例模式、工厂方法模式、策略模式、命令模式和桥接模式,这些都是Java编程中常用且至关重要的设计原则。 首先,我们来看**单例模式**。单例模式确保一个类只有一个实例,并提供...