设计模式之工厂模式-抽象工厂模式
抽象工厂模式:
定义了一个接口用于创建相关或有依赖关系的对象簇,而无需明确指定具体类。
我们来看看使用抽象工厂模式来实现的披萨项目。
来源:凯哥Java(kaigejava)
先来看看项目结构:
说明:
1:工厂接口
2:两个实现类
3:订单对象
4:测试类。
看看具体代码:
IFactoryInterface:
BeiJinFatory:
FactoryOrderPizza
测试类:
三种工厂模式:
1:把对象的实例化放在简单的类里面,那么这种就是简单工厂模式(也叫静态工厂模式)
2:如果我们把对象实例化代码进行抽象,抽象成创建对象的方法跟具体的实例化(也就是其子类),这种就是工厂方法模式。工厂方法模式的意义:将对象的创建过程,由原来的在类里面创建延迟到子类里面来创建对象了。
依赖抽象原则:
1:变量不要持有具体类的引用。
理解:A a = new A();这种方式就是变量a持有A对象的具体引用。在工厂模式中,我们可以这么做:A a = SF("A");或者是 A a = create("A");或者是A a = new Factory(new CreateA());
2:不要让类继承自具体类,要继承自抽象接口或者抽象类。
我们需要知道,如果类A继承具体的类B。这样的强依赖关系不便于扩展。而我们使用接口或者抽象类的话,就很方便扩展了。
3:不要覆盖基类中已经实现的方法
我们在设计基类的时候,已经实现的方法原则上是所有继承此基类的子类公用的(通用的)方法。子类中无需进行覆盖即可使用的。如我们披萨案例中的披萨烘培、切割以及打包方法。
说明:
通过本篇加前两篇文章,我们已经把工厂模式讲解完成了。但是,说实话,凯哥自己都感觉讲的不是很明白。所以,在下一篇文章中,凯哥将对三种模式做对比,然后进行总结。希望可以通过下一篇文章能把工厂模式讲解明白。
代码已经上传git上面了。
联系凯哥--》凯哥Java(kaigejava)
或凯哥个人博客:www.kaigejava.com 个人博客上面可以私聊凯哥哦!
相关推荐
设计模式专题之(三)抽象工厂模式---设计模式抽象工厂模式示例代码(python--c++)
在软件设计模式中,工厂模式是一组非常基础且实用的设计模式,主要分为简单工厂模式、工厂方法模式和抽象工厂模式。这些模式都是为了解决对象创建的问题,通过封装对象的创建过程,使得代码更加灵活,易于扩展和维护...
抽象工厂模式可以帮助我们创建一个工厂接口,该接口声明了创建这些组件的方法,然后为每种操作系统实现一个具体的工厂类。 ```java // 抽象工厂接口 public interface GUIFactory { Button createButton(); ...
抽象工厂模式(Abstract Factory Pattern)是一种创建型设计模式,提供一个接口用于创建一系列相关或相互依赖的对象,而无需指定它们的具体类。这种模式常用于需要跨多个产品系列进行实例化的场景。 抽象工厂模式的...
抽象工厂设计模式抽象工厂设计模式 抽象工厂设计模式 抽象工厂设计模式 抽象工厂设计模式 抽象工厂设计模式 抽象工厂设计模式
抽象工厂模式是创建型设计模式中的一种,用于创建一系列相关或相互依赖的对象,而无需指定其具体类。抽象工厂模式强调产品的系列,对于有多个产品等级结构的系统非常有用。在抽象工厂模式中,一个工厂负责创建多个...
抽象工厂模式是设计模式中的一种创建型模式,它提供了一个创建对象族的接口,而无需指定它们的具体类。在.NET开发中,这种模式常用于实现多数据库连接,比如连接到MySQL、SQL Server或Oracle等不同的数据库系统。...
抽象工厂模式是设计模式中的一种创建型模式,它提供了一种创建对象集合的接口,而无需指定具体的类。这种模式允许系统独立于如何创建、组合和表示产品对象的细节进行设计,为产品族(一组相关或相互依赖的对象)提供...
在给定的资源中,"设计模式交流之工厂模式-shannonxu-2014-10-24.pptx"可能是详细的PPT讲解,涵盖了这些模式的概念、结构、优缺点以及实际应用案例。而"Factory"可能是一个代码示例,展示了工厂模式的具体实现,包括...
设计模式 - 抽象工厂模式 抽象工厂模式是一种创建型设计模式,它提供了一种方式来创建一组相关或相互依赖的对象,而不需要指定具体的类。该模式允许客户端使用抽象的接口来创建一组相关的产品,而不需要关系实际...
抽象工厂模式是设计模式中的一种创建型模式,它提供了一种创建对象族的接口,而无需指定其具体的类。这种模式的关键在于“族”,即一系列相关的对象。在抽象工厂模式中,我们创建一个抽象工厂接口,然后为每一种具体...
java设计模式----抽象工厂模式,简单工厂模式代码 代码内部
设计模式---抽象工厂模式(Abstract Factory)-UML图 (StarUML)
抽象工厂模式是软件设计模式中的一种,属于创建型模式,它的主要目的是提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。在Java编程中,这个模式经常被用来实现跨平台或者不同品牌产品的一致性...
抽象工厂模式是设计模式中的一种,尤其适用于创建一组相关或相互依赖的对象。这个实例Demo将向我们展示如何在iOS环境中应用抽象工厂模式。 抽象工厂模式的核心思想是提供一个接口,用于创建一系列相关或相互依赖的...
抽象工厂模式是设计模式中的一种,它属于创建型模式,主要解决的是当系统有多个产品族,而每个产品族又有多个具体产品时,如何组织代码的问题。在Java中,抽象工厂模式提供了一种创建对象组的方式,使得这些对象属于...
在"JAVA抽象工厂模式--演示代码"中,我们可以预期会包含以下几个核心概念: 1. **抽象工厂**:这是模式的核心,定义一个创建对象族的接口,但不直接实例化具体的产品。它通常由一个抽象类或接口实现,例如`Abstract...
抽象工厂-设计模式-主要介绍怎么样创建抽象工厂并实现数据库创建
实验的核心在于理解和实践**抽象工厂模式**,这是一种常用的面向对象设计模式,旨在解决软件设计中的灵活性和扩展性问题。实验的目标包括: 1. **深入理解抽象工厂模式的基本概念和原理**:通过理论学习和实际操作...
抽象工厂模式是创建型设计模式的一种,它提供了一种创建对象族(一组具有相互依赖关系的对象)的方法,而无需指定具体类。这种模式的核心在于它允许客户端代码与具体实现细节解耦,使得更换一个产品族变得更为容易。...