(3)设计模式之抽象工厂模式(创建型模式)

C++设计模式|创建型 3.抽象工厂模式 在上一篇文章中介绍了,每个具体工厂负责生产一个专门的产品,其代码扩展性很好,这篇文章将介绍抽象工厂模式。 阅读详情

声明:以下都是博主浅薄的经验之谈,欢迎大家学习交流

这里写图片描述
- Fruit.java

package com.dyx.design.abstractfactory;

public interface Fruit {
    public void getFruit();
}
  • Apple.java
package com.dyx.design.abstractfactory;

public abstract class Apple implements Fruit{
    public abstract void getFruit();

}
  • Banana.java
package com.dyx.design.abstractfactory;

public abstract class Banana implements Fruit {

    public abstract void getFruit();

}
  • NorthApple.java
package com.dyx.design.abstractfactory;

public class NorthApple extends Apple {

    @Override
    public void getFruit() {
            System.out.println("采集北方苹果");
    }

}
  • NorthBanana.java
package com.dyx.design.abstractfactory;

public class NorthBanana extends Banana {

    @Override
    public void getFruit() {
        System.out.println("采集北方香蕉");
    }

}
  • SouthApple.java
package com.dyx.design.abstractfactory;

public class SouthApple extends Apple {

    @Override
    public void getFruit() {
            System.out.println("采集南方苹果");
    }

}
  • SouthBanana .java
package com.dyx.design.abstractfactory;

public class SouthBanana extends Banana {

    @Override
    public void getFruit() {
        System.out.println("采集南方香蕉");
    }

}
  • FruitFactory.java
package com.dyx.design.abstractfactory;

public interface FruitFactory {
    public Fruit getApple();
    public Fruit getBanana();
}
  • NorthFruitFactory.java
package com.dyx.design.abstractfactory;

/**
 * 描述: 北方产水果的工厂
 */
public class NorthFruitFactory implements FruitFactory {
    @Override
    public Fruit getApple() {
        return new NorthApple();
    }

    @Override
    public Fruit getBanana() {
        return new NorthBanana();
    }


}
  • SouthFruitFactory .java
package com.dyx.design.abstractfactory;

/**
 * 描述: 南方产水果的工厂
 */
public class SouthFruitFactory implements FruitFactory {
    @Override
    public Fruit getApple() {
        return new SouthApple();
    }

    @Override
    public Fruit getBanana() {
        return new SouthBanana();
    }


}
  • 运行
package com.dyx.design.abstractfactory;

public class MainClass {
    public static void main(String[] args) {
        FruitFactory southFactory = new SouthFruitFactory();
        Fruit apple = southFactory.getApple();
        Fruit banana = southFactory.getBanana();
        apple.getFruit();
        banana.getFruit();
    }
}
Java设计模式学习总结(3)——创建型模式之抽象工厂模式 抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。每个生成的工厂都能按照工厂模式提供对象。介绍意图:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。主要解决:主... 阅读详情

相关推荐

LwIP TCP Client 解决长数据发送的困扰

问题描述 LWIP 的 TCP Client 发送数据可以调用 tcp_write() 函数,将数据储存在缓冲区里面,然后等待超时自动发送或者调用tcp_output()函数进行发送。 然而 tcp_write() 函数 需要发送的数据过长时,将无法发送,并返回 ERR_MEM。 tcp_write()函数解析 tcp_write()的函数代码很多,就不细看代码了, 先看tcp_write()的完整函数: err_t tcp_write(struct tcp_pcb *pcb, const void

tiantangmoke的博客 1万+

【Java设计模式 - 创建型模式3】抽象工厂模式

java设计模式之工厂模式简介描述实现 简介 抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。每个生成的工厂都能按照工厂模式提供对象。 描述 意图:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。 主要解决:主要解决接口选择的问题。 何时使用:系统的产品有多于一

私聊前往站内信:https://i.youkuaiyun.com/#/msg/chat/weixin_44976692 1万+

疑难问题(二)——PyTorch 2.3.0 ‘import torch‘ 错误排查:深入解析‘shm.dll‘加载失败与系统路径修复

本文深入解析了在Windows系统上安装PyTorch 2.3.0后,执行'import torch'时遇到的'shm.dll'加载失败错误(OSError)。该问题通常源于系统DLL搜索路径缺失,导致无法找到关键的共享内存通信组件或其依赖项。文章提供了核心解决方案:通过手动修改PyTorch的`__init__.py`文件,将用户基目录下的Library\bin路径添加到DLL搜索列表中,从而从根本上修复此导入错误,并给出了详细的修改步骤和验证方法。

weixin_29056865的博客 305

23种设计模式(3)_创建型_抽象工厂模式(Abstract Factory Pattern)

当需要创建的对象是一系列相互关联或相互依赖的产品族时,便可以使用抽象工厂模式。说的更明白一点,就是一个继承体系中,如果存在着多个等级结构(即存在着多个抽象类),并且分属各个等级结构中的实现类之间存在着一定的关联或者约束,就可以使用抽象工厂模式。假如各个等级结构中的实现类之间不存在关联或约束,则使用多个独立的工厂来对产品进行创建,则更合适一点。

heyuchang666的专栏 651

群晖NAS下docker安装MySql

本文将一步一步讲解如何在群晖NAS的docker中启用一个MySQL容器 , 算是初学者对问题解决的一个记录.

qq_46375248的博客 5977

MST-GAT: Enhancing Anomaly Detection in Multimodal Time Series with Intra- and Inter-Modal Attention

本文深入解析了MST-GAT模型,这是一种通过模态内与模态间注意力机制增强多模态时间序列异常检测的新方法。它通过构建图结构显式建模传感器间的复杂时空依赖,并结合时间卷积网络与联合优化策略,有效降低了传统方法中常见的误报与漏报问题,在工业监控等场景中展现出卓越性能。

weixin_29079671的博客 150

JAVA设计模式3:抽象工厂模式,这是一种创建型设计模式

本文讲解了 Java 设计模式中的抽象工厂模式,并给出了样例代码,抽象工厂模式是一种创建型设计模式,它提供了一种创建一系列相关或相互依赖对象的接口,而无需指定其具体类。

Designer 小郑的技术博客 1679

系统动力学仿真软件Vensim下载

Vensim是由美国Ventana Systems, Inc.所开发,是采用图示化编程的方式构建系统动力学模型,上手简单。Vensim有很多系列产品,其中Vensim PLE (Personal Learning Edition)是面向个人学习者的,完全免费,可直接官网下载,截止于2022/04/10,最新的Vensim PLE版本是9.2.3。

PMIIᶜᶜ的博客 1万+

设计模式3——抽象工厂模式(创建型模式)

抽象工厂模式是工厂模式的升级。相对而言,抽象工厂模式并不像工厂模式那么好理解,看了不少网上博客的描述,感觉都说说的云里雾里,个人觉得还是把抽象问题具体化更好。推崇《大话设计模式》中的讲解模式。本文讲以更通俗的语言,结合《大话设计模式》中使用的实例,把抽象工厂模式理清楚。 1. 对工厂模式的回顾 先总结下个人对工厂模式的理解: 工厂模式中的类主要分两大类群,一是产品类群,而是工厂类群。 ...

ding3106的专栏 291

RTK_ROS_导航(1): GNSS里程计

1. RTK 配置 4G CORS + 4G 网络 + 户外有信号,不能实现RTK,就恢复出厂设置 输出信息包含(一般需要三个同时打开): GAPPA:包含位置信息 GPVTG:包含速度信息 GPHDT:包含定向的朝向信息 2. ROS驱动 驱动安装sudo apt install ros-noetic-nmea-navsat-driver 运行,需要修改该功能包的启动端口,会自动解析上面的3个RTK语句信息roslaunch nmea_navsat_driver nmea_serial_d

旋风小短腿 4265

VTK 显示大量点云数据及交互(点云拾取、着色、测量等)功能

VTK (Visualization Toolkit) 是一个强大的开源可视化库,非常适合处理点云数据。下面将介绍如何使用 VTK 显示大量点云数据,并实现点云拾取、着色、测量等功能。

深之JohnChen的专栏 1996

【c++设计模式05】创建型3:抽象工厂模式(Abstact Factory Pattern)

AbstractFactory 模式和 Factory模式的区别是初学(使用)设计模式时候的一个容易引起困惑的地方。实际上,AbstractFactory模式是为创建一组(有多类)相关或依赖的对象提供创建接口,而 Factory模式是为一类对象提供创建接口或延迟对象的创建到子类中实现。并且可以看到,AbstractFactory模式通常都是使用 Factory 模式实现。

junxuezheng的博客 884

FPGA DDR3实战(四):DDR地址映射自动化测试(1)—— 测试程序设计与代码逻辑

本文介绍了一种DDR地址映射自动化测试方案,旨在提高板卡调试效率。方案通过AXI4协议实现主从端通信,构建了包含地址控制器和测试数据生成器的模块化架构。测试程序支持突发传输、状态监控和错误检测,可灵活配置测试参数。采用状态机控制流程,先写入递增数据再读取比对,完成功能验证和性能评估。该方案可系统化验证DDR的正确性、稳定性和可靠性,相比传统手动测试显著提升效率。

FPGA_小田老师的博客 1977

GO设计模式——3、抽象工厂模式(创建型)

抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。每个生成的工厂都能按照工厂模式提供对象。抽象工厂模式提供了一种创建一系列相关或相互依赖对象的接口,而无需指定具体实现类。通过使用抽象工厂模式,可以将客户端与具体产品的创建过程解耦,使得客户端可以通过工厂接口来创建一族产品。

Gloming__zxy的博客 638

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

设计模式之创建型(3)-抽象工厂模式

设计模式之创建型(3)-抽象工厂模式 设计模式之创建型(3)-抽象工厂模式 posted @ 2014-05-28 00:00 李华丽 阅读(...) 评论(...) 编辑 收藏 ...

LHL62411570的专栏 333

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

设计模式3——创建型模式之抽象工厂模式

定义:抽象工厂模式(Abstract Factory),提供一个创建一系列相关或相互依赖对象的接口,而无需要指定它们具体的类。 类型:创建型模式。 类图:   参与角色:   1. FeaturePhone、SmartPhone,分别是功能手机和智能手机的两个抽象类,分别抽象出来了功能机的制造流程,智能机的制造流程。   2. NokiaFeaturePhone

飞鹤的程序员人生 955

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

《设计模式》第二部分 创建型设计模式 第3章 抽象工厂模式(A:C++实现)

抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。每个生成的工厂都能按照工厂模式提供对象。 2.1模式动机 为了更清晰地理解抽象工厂模式,需要先引入两个概念: 产品等级结构:产品...

不问归期的博客 720

《设计模式》第二部分 创建型设计模式 第3章 抽象工厂模式(B:Java++实现)

关于抽象工厂模式的具体讲解请看笔者博客 第二部分 创建型设计模式 第3章 抽象工厂模式(A:C++实现) 此文是“抽象工厂模式”的Java实现。 步骤一:创建抽象产品 创建产品A。 package com; public interface ProductA { public void show(); } 创建产品B。 package com; public interface Produ...

不问归期的博客 606

【设计模式深度剖析】【3】【创建型】【抽象工厂模式】| 要和【工厂方法模式】对比加深理解

与工厂方法模式对比,引入了产品族的概念

浣花御劍 1428

设计模式3:抽象工厂模式【创建型】

#include <iostream> using namespace std; // struct ISingleCore { public: virtual ~ISingleCore() { } virtual void Produce() = 0; }; class CSingleCoreA : public ISingleCore { public: virtua...

kanguolaikanguolaik的专栏 582

【设计模式】(七)--创建型模式--工厂模式3抽象工厂模式

【设计模式】(七)–创建型模式–工厂模式3抽象工厂模式 抽象工厂模式【设计模式】(七)--创建型模式--工厂模式3抽象工厂模式 抽象工厂模式简单实现 类图 实现 public interface Fruit { void showTaste(); } public interface Apple extends Fruit{ } public interface Orange exten...

lovesunren的专栏 197

java 设计模式_创建型_3抽象工厂模式

摘要:抽象工厂模式通过抽象工厂接口定义产品族的创建方法,包含多个相关产品的生产。当只有一个产品族时,该模式退化为工厂方法模式。示例展示了抽象工厂(AbstractFactory)与具体工厂(DefaultFactory)的实现,以及抽象产品(Vehicle,Food,Weapon)和具体产品(Car,Apple,Sword)的继承关系,最后通过测试类演示了产品创建和使用的完整流程。该模式适用于需要创建一系列相关或依赖对象的场景。

qq_39275653的博客 269

3、设计模式(创建型)之抽象工厂模式

作用 提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。 何时使用 系统的产品有多于一个的产品族,而系统只消费其中某一族的产品 优点 当一个产品族中的多个对象被设计成一起工作时,它能保证客户端始终只使用同一个产品族中的对象。 实例 package xin.chen.create_type.factory.abstractFactory; /** * @Author:...

为什么坚持,想一想当初 186

设计模式学习笔记(3)——创建型——抽象工厂模式

类图:

qq_18846873的博客 221
上一篇: (2)设计模式之工厂方法模式(创建型模式)
下一篇: HTTP协议详解(2)
yi博说
博客等级 码龄11年 20粉丝 30原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值