抽象工厂

Java抽象工厂+单例模式 阅读详情

        抽象工厂由4部分组成 , 产品类 , 生产产品的工厂类 , 抽象工厂类(里面包含了不同的产品), 生产产品抽象工厂(里面包含了不同的产品).PS : 工厂的作用是生产产品.

        生产产品的工厂继承产品(为了更好维护程序 , 每个产品每个工厂对应着一个类).


       

/*************************************************************************
	> File Name: define_1.h
	> Author: Code4
	> Mail: 1614652215@qq.com 
	> Created Time: 2018年04月14日 星期六 19时11分48秒
 ************************************************************************/
#pragma once
#include"iostream"


using namespace std ;

//产品1

class MTable{
	public:
		virtual void  Find() = 0 ;
		virtual void  Add() = 0 ;
};
//产品2
class STable{
	public:
		virtual void  Find() = 0;
		virtual void Add() = 0 ;
};
//产品1的工厂1
class UMtable : public MTable{
	public:
		void Find() ;
		void Add() ;
};
//产品1的工厂2
class DMtable : public MTable{
	public:
		void Find() ;
		void Add() ;
};
//产品2 的工厂1
class UStable : public STable{
	public:
		void Find() ;
		void Add() ;
};
//产品2 的工厂2
class DStable : public STable{
	public :
		void Find () ;
		void Add () ;
};
//抽象工厂
class Abs_Factory {
	public :
		virtual MTable * createM() = 0 ;
		virtual STable * createS() = 0 ;
};
//工厂1的抽象
class U_Factory : Abs_Factory{
	public:;
		MTable *createM() ;
		STable *createS() ;
};
//工厂2的抽象
class D_Factory : Abs_Factory{
	public:
		MTable *createM() ;
		STable *createS() ;
};



/*************************************************************************
	> File Name: index_1.cpp
	> Author: Code4
	> Mail: 1614652215@qq.com 
	> Created Time: 2018年04月14日 星期六 19时12分09秒
 ************************************************************************/
#include "iostream"
#include "define_1.h"

using namespace std ;

void UMtable::Find(){
	cout<<" UM table  Find "<<endl ;
}

void UMtable::Add(){	
	cout<<" UM table Add  "<<endl ;
}

void DStable:: Find(){
	cout<<"DS table Find"<<endl;
}
 
void DStable :: Add(){
	cout<<"DS table Add"<<endl ;
}

void UStable :: Find(){
	cout<<"US table Find "<<endl;
}

void UStable :: Add(){
	cout << "US table Add "<<endl ;
}

void DMtable :: Find (){
	cout <<" DS table find"<<endl ;
}

void DMtable :: Add (){
	cout << "DS table Add "<<endl ;
}

MTable * U_Factory :: createM(){
	return new UMtable() ;
}

STable * U_Factory :: createS(){
	return new UStable() ;
}

MTable * D_Factory :: createM(){
	return new DMtable () ;
}

STable * D_Factory :: createS() {
	return new DStable () ;
}



/*************************************************************************
	> File Name: main.cpp
	> Author: Code4
	> Mail: 1614652215@qq.com 
	> Created Time: 2018年04月14日 星期六 19时11分19秒
 ************************************************************************/
#include "iostream"
#include "define_1.h"
#include "index_1.cpp"

using namespace std ;


int main(){
        U_Factory *l = new U_Factory ();  //实例化一个工厂
	MTable *n = l->createM() ;     //实例化工厂的一个产品
	n->Find() ;              //调用产品一个功能
	return  0 ;
}

c++抽象工厂 1概念 抽象工厂模式是所有形态的工厂模式中最为抽象和最其一般性的。抽象工厂模式可以向客户端提供一个接口,使得客户端在不必指定产品的具体类型的情况下,能够创建多个产品族的产品对象。 2产品族和产品等级结构 备注1:工厂模式:要么生产香蕉、要么生产苹果、要么生产西红柿;但是不能同时生产一个产品组。抽象工厂:能同时生产一个产品族。===》抽象工厂存在原因 解释:具体工厂在开闭原则下, 能生产香蕉/苹果/梨子; (产品等级结构) 抽象工厂:在开闭原则下, 能生产:南方香蕉/苹果/梨子 (产品族) 北方香蕉/ 阅读详情

相关推荐

Vue3+codemirror6实现公式(规则)编辑器

vue3+codemirror6+ts实现公式编辑器,可以插入标签、公式,也有补全提示

小阮的笔记本 5052

【设计模式实践笔记】第二节:抽象工厂模式

抽象工厂的核心逻辑是通过工厂接口,来解决创建一系列产品的问题,要注意区分的是如果没有「系列产品」,那抽象工厂跟普通工厂就没有本质区别

北有风雪 702

海康威视摄像头CVE-2017-7921漏洞复现:从零到一的实战指南(含解密工具下载)

本文详细解析了海康威视摄像头CVE-2017-7921漏洞的技术原理与复现方法,提供从环境搭建到实战利用的完整指南。通过认证绕过漏洞,攻击者可获取敏感信息并执行高权限操作,文章还包含解密工具下载与防御建议,助力安全研究人员深入理解物联网设备安全风险。

weixin_29325515的博客 814

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

抽象工厂模式(Abstract Factory Pattern)隶属于设计模式中的创建型模式,用于产品族的构建。抽象工厂是所有形态的工厂模式中最为抽象和最具一般性的一种形态。抽象工厂是指当有多个抽象角色时使用的一种工厂模式。抽象工厂模式可以向客户端提供一个接口,使客户端在不必指定产品的具体情况下,创建多个产品族中的产品对象。

tszc95的博客 9864

【PyBind11+anaconda+opencv+windows11+cmake+wsl+vscode】从入门到跑通。构建基于opencv c++的python package

如何安装请详见上文 【PyBind11+anaconda+opencv+windows11+cmake+wsl+vscode】从入门到跑通。构建基于opencv c++的python接口_子韵如初的博客-优快云博客w不需要安装啥x11 、 xming直接mobxterm可以搞定点击右上角的X server打开可视化服务器然后 apt install x11-apps -yxclock 搞定从mobxterm可以看到display的端口X11显示可视化的原理是就是通过X协议,类似于http对linux于w

weixin_43953700的博客 3万+

STM32G4实战:用CubeMX+Keil五分钟搞定FreeRTOS多任务LED控制(避坑指南)

本文详细介绍了如何在STM32G4系列芯片上使用CubeMX和Keil快速配置FreeRTOS实现多任务LED控制,包括环境准备、时钟配置、任务创建及常见问题解决方案。重点解决了时钟源冲突等高频问题,并提供了优化建议和进阶应用示例,帮助开发者高效完成嵌入式开发任务。

joy55的博客 225

抽象工厂模式详解

抽象工厂模式(Abstract Factory Pattern)也是一种创建型设计模式,它提供了一种创建一系列相关或者相依赖对象的工厂接口(超级工厂),不同类型的工厂再去实现这个抽象工厂,最后还可提供一个工厂创造者类,通过传入工厂类型参数来创建具体工厂。它是对工厂方法模式的扩展,核心思想是将工厂本身也抽象化,其主旨是围绕一个超级工厂或中心工厂去创建其他工厂,这个超级工厂又称为其他工厂的工厂。它与工厂方法模式的区别就在于,工厂方法模式针对的是一个产品等级;而抽象工厂模式则是针对的多个产品等级,即一个产品族。

qq_36756227的博客 3471

cocos2dx中DrawNode画线锯齿和非凸多边形填充

记录一下在cocos2dx中使用DrawNode所遇到的2个问题 1.画线锯齿问题 ios版本下,在AppController.mm中设置CCEAGLView的multiSampling和numberOfSamples。如下图 CCEAGLView *eaglView = [CCEAGLView viewWithFrame: [window bounds]

hello-world 5415

抽象工厂模式-Abstract Factory Pattern

抽象工厂模式-Abstract Factory Pattern

帕布里克沃德曼的博客 1万+

MQTT(一)C#使用 MQTTnet 快速实现 MQTT 通信(文末有完整Demo下载)

目录 MQTT(一)C#使用 MQTTnet 快速实现 MQTT 通信(文末有完整Demo下载) MQTT(二)在windows64位上安装Python环境 MQTT(三)Python客户端+net客户端+net服务端 简单通信 MQTT(四)树莓派开机自动运行Python客户端 MQTT(五)EMQ开源MQTT消息服务器 1 什么是 MQTT ? MQTT(Message Que...

pw的博客 10万+

【Unity 实用工具篇】 | 滚动列表插件FancyScrollView,快速上手使用

FancyScrollView 是一款专为Unity引擎开发的高效滚动列表组件。它具有轻量级、可定制性强、性能优秀等特点。 使用FancyScrollView插件进行Unity项目开发,可以极大提升开发效率,尤其是在需要大量列表展示的场景下,如商城、目录列表、角色选择界面等。开发者可以将注意力集中在业务逻辑的实现上,而将界面渲染和交互部分交由FancyScrollView处理。 本文来介绍一下FancyScrollView的功能展示和基本使用方法。

努力前行,总会成为自己心中的那道光 3万+

抽象工厂(Abstarct Factory)

抽象工厂类(AbstractFactory)定义了创建产品的接口,具体工厂类(ConcreteFactory1 和 ConcreteFactory2)实现了抽象工厂接口,并根据需要创建具体的产品对象。每个具体工厂实现了抽象工厂定义的方法,根据需要创建具体的产品对象。通过抽象工厂模式,我们可以在客户端代码中使用抽象工厂和抽象产品,而不需要直接与具体工厂和具体产品进行交互,从而实现了解耦和灵活的对象创建。具体产品(Concrete Product):实现了抽象产品定义的接口,具体产品是抽象产品的实际实现。

強雲的博客 738

Copilot在游戏开发中的应用:Unity脚本自动生成实践

2021年GitHub Copilot的发布,为代码自动生成带来了革命性突破。作为基于GPT模型训练的AI辅助编程工具,Copilot能根据注释、函数名、代码上下文,实时生成符合语法和逻辑的代码片段,甚至完整脚本。减少重复劳动:自动生成模板代码(如生命周期、结构),让你专注核心逻辑;降低API学习成本:对Unity特有的组件(RigidbodyAnimator)、类(),Copilot能生成符合最佳实践的调用代码;统一代码风格:通过团队共享提示词模板,让生成的代码符合项目规范;快速原型迭代。

AIGC应用创新大全的博客 1619

抽象工厂模式

定义:抽象工厂模式提供一个创建一系列相关或相互依赖对象的接口。 抽象工厂是创建型设计模式,它强调了一系列相关产品对象(属于同一个产品族)的创建过程,它和工厂方法模式的侧重点不同,工厂方法模式更加侧重于同一产品等级,而抽象工厂模式侧重的是同一产品族。简单说就是一个工厂中生产的一系列对象都是同一个产品族的。 还是用冰箱来举例,美的生产的产品有美的冰箱、美的空调、美的电风扇。 首先创建三个接口: //空...

start_mao的博客 1万+

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

设计模式之抽象工厂模式

抽象工厂概念,实现例子,java代码实现。

. 1680

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

抽象工厂模式学习总结

抽象工厂模式 引言 工厂模式是抽象工厂模式特例,在工厂模式中,一个工厂对应一个产品,在抽象工厂模式中,一个工厂对应N个产品,当N=1时,抽象工厂模式就退化成了工厂模式。 抽象工厂模式重要等级★★★★★ 抽象工厂模式难度等级★★★★☆ 定义 英文定义:"Provide an interface...

江川的博客 3545

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

抽象工厂的例子

抽象工厂没有讲明白,这里填加一个比较完整的例子.我觉得明白了抽象工厂目标是通过一个抽象工厂的子类来建立一系列同一性质的产品这点,就理解该模式了.#include #include using namespace std;class General{public: virtual void Assault() = 0;};class GirlGeneral : public Genera

junguo的专栏 6889

java 抽象工厂 类图_Java 抽象工厂模式

抽象工厂模式(Abstract Factory Pattern)是工厂方法模式的进一步抽象,其英文原话"Provide an interface for creating families of related or dependent objects without specifying their concrete classes",翻译,“为创建一组相关或相互依赖的对象提供一个借口,无需指定...

weixin_30236323的博客 1967

java中抽象工厂模式_抽象工厂模式(详解版)

前面介绍的工厂方法模式中考虑的是一类产品的生产,如畜牧场只养动物、电视机厂只生产电视机、计算机软件学院只培养计算机软件专业的学生等。同种类称为同等级,也就是说:工厂方法模式只考虑生产同等级的产品,但是在现实生活中许多工厂是综合型的工厂,能生产多等级(种类) 的产品,如农场里既养动物又种植物,电器厂既生产电视机又生产洗衣机或空调,大学既有软件专业又有生物专业等。本节要介绍的抽象工厂模式将考虑多等级产...

weixin_35823048的博客 2282

python 抽象工厂

在 Python 中,抽象工厂模式(Abstract Factory Pattern)是一种创建型设计模式,它提供一个接口,用于创建一系列相关或相互依赖的对象,而不需要指定它们的具体类。抽象工厂模式通常与工厂方法模式结合使用,允许一个系统独立于其产品创建、组合和表示。

laocooon的博客 833

我对于抽象工厂模式的理解

首先 ,想要理解抽象工厂模式首先要理解简单工厂模式和工厂模式! 概念:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。 有以下角色组成: 抽象工厂类 具体工厂类 抽象产品类 具体产品类 与工厂方法的区别在于: 在抽象工厂模式中,有一个产品族的概念:所谓的产品族,是指位于不同产品等级结构中功能相关联的产品组成的家族。抽象工厂模式所提供的一系列产品就组成一个产品族;而工厂方法提供的...

天元白手的博客 723

什么是抽象工厂模式

意图:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。主要解决:主要解决接口选择的问题。何时使用:系统的产品有多于一个的产品族,而系统只消费其中某一族的产品。如何解决:在一个产品族里面,定义多个产品。关键代码:在一个工厂里聚合多个同类产品。应用实例:工作了,为了参加一些聚会,肯定有两套或多套衣服吧,比如说有商务装(成套,一系列具体产品)、时尚装(成套,一系列具体产品),甚至对于一个家庭来说,可能有商务女装、商务男装、时尚女装、时尚男装,这些也都是成套的,即一系列具体产品。

Hell_potato777的博客 1816
上一篇: 简单工厂模式
下一篇: 工厂方法模式
陌逸_逺
博客等级 码龄9年 13粉丝 49原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值