设计模式_4_简单工厂模式

MATLAB小白也能搞定!BCT脑网络分析工具箱安装与入门指南 本文为零基础用户提供了一份详尽的BCT脑网络分析工具箱安装与入门指南。从MATLAB环境配置、BCT工具箱下载与路径添加,到连接矩阵构建、节点度与聚类系数等基础指标计算,手把手带领神经科学研究者跨越编程门槛,快速掌握脑影像数据分析的核心流程。 阅读详情

工厂模式:实现了创建者和调用者的分离,就帮助我们实例化对象。
在这里插入图片描述
开闭原则(ocp):一个软件的实体应当对扩展开放,对修改关闭。也就是说如果要增加新的功能,不要修改里面的东西,而通过增加新的例来实现。

依赖倒转原则(dip):要针对接口编程,不要针对实现编程。比如有两个实现类,a类调b类,a类依赖于b,dip原则要依赖于抽象,不依赖于具体,就是 a类调b类,b类实现一个接口,a类调这个接口,a类和接口发现关系,不和b类发生关系,从具体变成抽象。

迪米特法则(lod):只于你直接的朋友通信,而避免和陌生人通信。 就是少和别的类发现关系,实现解耦

所有设计模式都是针对面向对象来设计的,面向过程没有这些的,所以设计模式是基于面向对象。
在这里插入图片描述
用代码来说明
先创建一个汽车的接口

public interface Car {
	 void run();
}

在建立两个实现类,一个奥迪,一个比亚迪

public class Audi implements Car {

	@Override
	public void run() {
		System.out.println("奥迪再跑!");
	}
}
------------------------------------------------------------------------
public class Byd implements Car {

	@Override
	public void run() {
		System.out.println("比亚迪再跑!");
	}

}

在没有工厂模式的情况下,调用者即要知道这个接口类,还要和实现类打交道,就好比你是个司机,你还要知道这个奥迪车是怎么创建的,如果创建还要许多复杂参数的话,还要准备好多参数。

public class Client01 {           //调用者
	public static void main(String[] args) {
		Car c1 = new Audi();
		Car c2 = new Byd();
		
		c1.run();
		c2.run();
	}
}

它们之间的关系
在这里插入图片描述
有工厂模式的情况下,这个汽车工厂就专门来创建汽车,就不用调用者创建。

public class CarFactory {		//汽车工厂
	public  static Car createCar(String type){
		if ("奥迪".equals(type)) {
			return new Audi();
		}else if ("byd".equals(type)) {
			return new Byd();
		} else {
			return null;
		}
	}
}
---------------------------------------------------
public class Client02 {				//调用者
	public static void main(String[] args) {
		Car c1  = CarFactory.createCar("奥迪");
		Car c2 = CarFactory.createCar("byd");
		
		c1.run();
		c2.run();
	}
}


如果后面要加个奔驰,就需要在后面加,这样就违反了开闭原则,简单工厂有点小问题,后面有简单工厂方法模式。
关系图:调用者只需要知道我需要car,从工厂里面拿,整体 关系复杂了,但是对调用者来说简单了。
在这里插入图片描述
在这里插入图片描述
这是第二种方式

public class CarFactory02 {
	public  static Car createAudi(){
		
			return new Audi();
	}
	public  static Car createByd(){
		
		return new Byd();
	}
		
	
	
}

也有人把简单工厂模式叫静态工厂模式,因为它使用了静态方法。

数学向量空间的对偶空间解析 对偶空间是线性代数的"进阶语法",它不仅深化了我们对向量空间的理解,还为解决实际问题提供了强大工具。用生活类比解释对偶空间的核心概念,打破"抽象数学"的壁垒;建立对偶空间与原向量空间的直观联系,揭示"对偶"的本质;通过数学推导和代码实现,让读者掌握对偶空间的基本运算;展示对偶空间在科学和工程中的应用,体现其理论价值。范围:本文从有限维实向量空间入手(便于理解),逐步扩展到对偶基、双对偶空间,最后简要提及无限维空间的特殊性。 阅读详情

相关推荐

Qt制作大数据可视化大屏展示电子看板

Qt制作大数据可视化大屏展示电子看板 解决当前最火的大数据可视化大屏展示,整个项目通过Qt开发,集成了QML/QChart/ECharts及自定义控件等模块,所有的可视化控件都可以集成到其中。可以随意增加和减少模块,各个模块可以随意拖拽,整体可以个性化布局。模块标题栏可自定义,包括标题文本信息、文本颜色、宽度/高度、背景颜色、按钮个数等功能,满足各个样式需求。 实例中主要展示了现成的一些仪表盘...

Qt自定义控件及应用开发 7707

设计模式——(二)工厂模式

昨天看了一下工厂模式,发现大部分概念都太官方,不想看,所以我今天自己用代码来撸了一遍,如果有不对的地方,欢迎博友讨论。转摘请注明出处! 文字不多,主要通过代码来理解,概念请结合代码去网上搜 一、简单工厂模式 场景:某汽车公司老板让你设计一个汽车接口,接口用来开车驾驶,例如汽车有宝马、奥迪、奔驰.... 首先抽象出Car类 public interface Car { publi...

张小凡 473

Eureka常见面试题总结

点击关注我的博客原文 Eureka是Netflix组件的一个子模块,也是核心模块之一。云端服务发现,一个基于 REST 的服务,用于定位服务,以实现云端中间层服务发现和故障转移(来源springcloud中文网的介绍:https://www.springcloud.cc/)。下图总结了Eureka服务端(以下简称服务端)与Eureka客户端(以下简称客户端)之间协同工作的流程: 流程说明:...

u012105931的博客 2万+

工厂设计模式之——简单工厂设计模式

工厂设计模式分为三类:简单工厂设计模式,工厂方法设计模式,抽象工厂设计模式 工厂设计模式的核心本质: 实例化对象,用工厂方法代替new操作; 将选择的实例化类和创建者进行统一地管理,实现调用者和实现类的解耦操作 也就是说实现分工合作,依赖从具体到抽象,不依赖于具体实现,便于扩展 今天先介绍简单工厂设计模式 简单工厂设计模式是比较常用的工厂设计模式 要求:消费者需要得到两类车:奥迪和比亚迪,用代码实...

educationer的博客 300

matlab中高频变压器怎么找,干货|手把手教你绕制高频变压器

原标题:干货|手把手教你绕制高频变压器绕制一个变压器所需材料:磁芯、骨架、各种铜线、麦拉胶带。变压器参数:磁芯:EE22原边:134T(1-3脚),辅助:32T(5-4脚),输出:15T(10-9脚)原边电感:1380±10%uH漏感:≤44uH引脚分布图: 特别注意:绕制方法为网上下载,其中变压器绕制方法是对的,但其中存在着很多问题(比如,正规变压器的绕组的头和尾是要添加铁氟龙套管的,每一层之间...

weixin_30895121的博客 2124

虚幻引擎5 AR开发教程02:构建和测试AR Android App

在本教程中,我们将学习如何在虚幻引擎 5 上构建和测试 AR 安卓应用。

mopanchun的博客 2650

工厂模式(工厂模式4)

工厂模式:工厂模式 提示:在实际工作中更偏向使用简单工厂模式, 相对于简单工厂模式,我们要再建一个工厂接口,对于其他要实现的的类都实现这个接口, 创建一个实现类的工厂(public class AudiCarFactory implements CarFactory ){} 通过这个实现类工厂来创建我们要的实现类 //添加工厂实现类,方便添加新的类,如果要创建一个BydCar,...

weixin_30252155的博客 118

MIT Cheetah Learning (一):State Estimate 从理论到实践:EKF融合IMU与编码器的状态估计全解析

本文深入解析了MIT Cheetah机器人中基于Extended Kalman Filter的状态估计技术,详细探讨了如何融合IMU与编码器数据以实现精准的State Estimate。通过四元数建模和传感器误差分析,揭示了EKF在复杂地形中的工程实践价值,为四足机器人的实时状态估计提供了完整解决方案。

weixin_30292843的博客 304

工厂模式学习笔记(java版)

作用: 实现了创建者和调用者的分离。 分类: 简单工厂模式 工厂方法模式 抽象工厂模式 面向对象设计原则: 开闭原则(OCP,Open-Closed Principle):一个软件的实体应当对扩展开放,对修改关闭。 依赖倒转原则(DIP,Dependence Inversion Principle):要针对接口编程,不要针对实现编程。 迪米特法则(LoD,Law of Demeter):只与...

芊雨的博客 340

基于IC555的PWM信号发生器设计:从原理到电机调速与LED调光应用

脉冲宽度调制(PWM)是一种通过调节数字脉冲宽度来控制模拟信号电平的核心技术,其原理在于固定频率下改变高电平占空比,从而等效调节平均电压或功率。这项技术因其高效率、低损耗的特点,在电机调速、LED调光、开关电源等工程领域具有重要价值。本文聚焦于利用经典IC555定时器芯片构建PWM信号发生器,通过分析其无稳态工作模式及改进型电路设计,实现了占空比独立可调且频率稳定的信号输出。文中结合电机驱动与LED调光等具体应用场景,详细阐述了电路参数计算、元件选型、PCB设计及常见问题排查等实践要点,为电子爱好者与工程师

weixin_30342363的博客 396

2、稳定性问题全景图——死机、重启、ANR、Crash、黑屏五大类

当 Crash 发生在 system_server、surfaceflinger、mediaserver 等关键系统进程中时,其后果等同于系统级故障,可能触发 Zygote 重启甚至 kernel panic。这类问题在稳定性治理中的优先级应等同于 P0。

woailuojp的博客 49

设计模式之———工厂模式

目录 1. 工厂模式介绍 2. 无工厂模式 3. 简单工厂模式 4. 工厂方法模式 5. 抽象工厂模式 6. 总结

lyyao09的博客 395

一文吃透 SAP HANA Service Broker:原理、架构与落地实践

摘要:SAP HANA Service Broker 作为云原生开发的关键组件,通过标准化流程管理 HDI 容器与服务实例的生命周期,实现数据库资源的自动化配置与安全隔离。它采用服务目录、服务计划和绑定机制,将连接凭据注入应用环境变量,避免硬编码风险。在实际应用中,需根据模块生命周期决定共享或隔离容器,并通过跨容器访问模式实现安全数据共享。典型案例展示了电商平台的多模块协同与SaaS租户隔离场景,验证了其在提升运维效率与安全合规方面的价值。最佳实践强调以生命周期划边界、最小权限原则和HTTPS安全传输,为企

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 225

设计模式笔记4:简单工厂模式(Simple Factory Pattern)

一、简单工厂模式的内容 简单工厂模式(Simple Factory Pattern):又称为静态工厂方法(Static Factory Method)模式,它属于类创建型模式。在简单工厂模式中,可以根据参数的不同返回不同类的实例。简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。 Simple Factory模式实际上不是GoF 23个设计模式中的一员。其

Snowball 1180

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

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

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

【C#设计模式】4-0. 简单工厂模式【创建型】

简单工厂模式简单来说就是创建一个工厂类,通过输入的参数创建对象赋值给基类,完成对想要的派生类的调用,从而达成目标,具体的操作均在子类中完成,工厂类只负责运算逻辑和给基类赋值。.......................................

星Yeah 的博客 5223

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

大战设计模式【4】—— 简单工厂模式

简单工厂模式(Simple Factory)   设计模式使用的例子 https://github.com/LinkinStars/DesignPatternsAllExample   一、定义 定义一个工厂类,它可以根据参数的不同返回不同类的实例,被创建的实例通常都具有共同的父类。因为在简单工厂模式中用于创建实例的方法是静态(static)方法,因此简单工厂模式又被称为静态工厂方法模...

weixin_33890499的博客 83

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

4、设计模式——简单工厂模式

简单工厂模式是类的创建模式,又叫做静态工厂方法(Static Factory Method)模式。简单工厂模式是由一个工厂对象决定创建出那一种产品类的实例。通常它根据自变量的不同返回不同的类的实例;简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建出哪一个产品类的实例。 1、简单工厂模式的构成 •工厂类(Creator)角色:担任这个角色的是简单工厂模式的核心,含有与应用紧密相关

kaoa000的专栏——非淡泊无以明志,非宁静无以致远 728

4-设计模式-简单工厂模式

一、什么是简单工厂 1)简单工厂模式是属于创建型模式,是工厂模式的一种。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式 2)简单工厂模式:定义了一个创建对象的类,由这个类来封装实例化对象的行为(代码) 3)在软件开发中,当我们会用到大量的创建某种、某类或者某批对象时,就会使用工厂模式。 二、具体例子 一个披萨的项目:要便于披萨种类的扩展,要便于维护 1)披萨的种类很多(比如:GreekPizz、CheesePizz等 ) 2)披萨的制作有 prepar

caijunsen的博客 273

设计模式(4)-Simple Factory Pattern

工厂模式专门负责将大量有共同接口的类实例化。工厂模式可以动态决定将哪一个类实例化,不必事先知道每次要实例化哪一个类。工厂模式有以下几种形态: 简单工厂(Simple Factory)模式 工厂方法(Factory Method)模式 抽象工厂(Abstract Factory)模式 一、简单工厂(Simple Factory)模式 Simple Factory模式根据提供...

weixin_30588827的博客 69

C#设计模式(4)-Simple Factory Pattern

工厂模式专门负责将大量有共同接口的类实例化。工厂模式可以动态决定将哪一个类实例化,不必事先知道每次要实例化哪一个类。工厂模式有以下几种形态: 简单工厂(Simple Factory)模式 工厂方法(Factory Method)模式 抽象工厂(Abstract Factory)模式 一、 简单工厂(Simple Factory)模式Simple

saintjackson的专栏 505

设计模式学习系列4 简单工厂模式

         从设计模式的类型上来说,简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现。 1简单工厂模式结构图 简单工厂模式主要包含三部分 (1)工厂:负责根...

weixin_34324081的博客 91

《Java 设计模式精讲》笔记——第4章 简单工厂模式

文章目录1. 简单工厂讲解2. 简单工厂 coding 声明: 本博客是本人在学习《Java 设计模式精讲》后整理的笔记,旨在方便复习和回顾,并非用作商业用途。 本博客已标明出处,如有侵权请告知,马上删除。 1. 简单工厂讲解 定义:由一个工厂对象决定创建出哪一种产品类的实例 类型:创建型,但不属于 GOF23 种设计模式 适用场景: 工厂类负责创建的对象比较少 客户端(应用层)只知道传入工厂类的参数对于如何创建对象(逻辑)不关心 优点:只需要传入一个正确的参数,就可以获取你所需要的对象而无须知

bm1998 239

JAVA设计模式学习4——简单工厂模式

转自: http://alaric.iteye.com/blog/1908619   从这节开始学习设计模式,首先学习创建模式,其中工厂模式是创建模式里面最常见也常用的一种,工厂模式又分简单工厂模式(Simple Factory),工厂方法模式(Factory Method)和抽象工厂模式(Abstractor Factory),这里先学习最简单的也就是简单工厂模式。 简单工厂模式(Si...

governlee的博客 221

设计模式(4):工厂模式之简单工厂模式

简单工厂模式是一种创建型设计模式,这个模式实现了工厂设计模式的最基本形态,通过一个工厂类决定创建出哪一种产品类的实例。工厂类(Factory):负责创建具体对象的工厂类。它通常包含一个静态方法,根据客户端的请求参数决定创建哪个具体对象,并返回创建的对象。抽象产品类(Product):定义了产品的共同接口,描述了产品所具有的功能和行为。具体产品类(Concrete Product):实现了抽象产品类定义的接口,具体产品类是工厂类所创建的对象。

xztttt的博客 271
上一篇: 笔记_MVC开发模式
下一篇: 树和二叉的的基本概念
Pure_Man_Ben
博客等级 码龄8年 31粉丝 53原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值