简单工厂模式

1、简单工厂模式实现计算器功能 简单工厂模式实现计算机功能 文章目录简单工厂模式实现计算机功能简介创建型模式简单工厂模式概述流程结构理解类图优点缺点适用环境练习题目源代码 简介 创建型模式 了解简单工厂模式之前,首先要先了解下创建型模式,接下来的Java设计模式的学习,将会逐步学习创建型模式下的6种模式。 创建型模式描述如何将对象的创建和使用分离,让用户在使用对象时无须关心对象的创建细节,从而降低系统的耦合度,让设计方案更易于修改和扩展。 在GoF设计模式中包含5种创建型模式,通常将一种非GoF设计模式——简单工厂模式作为学习其他工厂模式 阅读详情

简单工厂模式类图:

 

***************************************************************************************************

简单工厂模式目的:

提供一个类,由它负责根据一定的条件创建某一具体类的实例,客户端不参与创建具体产品,仅通过传入参数选择需要“消费”对象。而不必管这些对象究竟如何创建及如何组织的,从而使得客户端和实现之间的解耦

****************************************************************************************************

简单工厂模式的优势:

分离对象的创建和使用

****************************************************************************************************

简单工厂模式的缺点:

多一种产品,就要修改工厂类,违背了OCP原则。
 
****************************************************************************************************

简单工厂模式的使用场景:

工厂类负责创建的对象比较少;
客户只知道传入工厂类的参数,对于如何创建对象(逻辑)不关心;
由于简单工厂很容易违反高内聚责任分配原则,因此一般只在很简单的情况下应用。

****************************************************************************************************

简单工厂模式通用代码:

package com.imo.simpleFactory;

import com.imo.Main;

public class Client {
	public static void main(String[] args) throws Exception {
		Product product = Factory.createProduct(ProductA.class);
		product.operation();
		product = Factory.createProduct(ProductB.class);
		product.operation();
		product = Factory.createProduct(Main.class);
		product.operation();
	}

}


package com.imo.simpleFactory;

public class Factory {
	public static Product createProduct(Class<?> product)
			throws Exception {
		if (product.equals(ProductA.class)) {
			return new ProductA();
		} else if (product.equals(ProductB.class)) {
			return new ProductB();
		} else {
			throw new Exception("不能生产此类产品");
		}
	}

}


package com.imo.simpleFactory;

public interface Product {

	public void operation();

}


package com.imo.simpleFactory;

public class ProductA implements Product {

	@Override
	public void operation() {
		// TODO Auto-generated method stub
		System.out.println("ProductA");

	}

}


package com.imo.simpleFactory;

public class ProductB implements Product {

	@Override
	public void operation() {
		// TODO Auto-generated method stub
		System.out.println("ProductB");
	}

}

****************************************************************************************************

补充:可以通过方法的重裁使工厂类更加优雅。

****************************************************************************************************

以上文字大部分是网上抄的,连图片都是抄的,只不过自己组织了一下。从前面的文字,简单工厂模式的优势是分离了对象的创建和使用,我就他妈的搞不懂了,我们不是已经很习惯创建对象,然后使用对象么?现在对象让人家帮我们创建,我们使用即可,这有什么本质上得好处?想来想去,觉得只可能是对象的创建比较复杂,不应该让使用者接触这些细节。有想法的朋友可以留言,一起讨论。

NSIDC海冰运动产品-速度矢量场图绘制(数据下载和处理--年、季节平均)【python/basemap】 入门级NSIDC海冰运动产品速度矢量场图绘制(数据下载和处理--年、季节平均)【python/basemap】 阅读详情

相关推荐

360°视频的视频编解码器性能评估中的常见测试条件和软件参考配置

这几天一直阅读提案,发现状态不是很好,就把几篇我觉得很有用的提案摘录到这里。带(*)标识的地方是我还没懂的地方= =、 首先这篇提案是JVET common test conditions and evaluation procedures for 360° video 1、Introduction 360°视频通用测试条件是在well-defined(*)的环境中进行实验,并且简化实验结果

不是他人太努力,只是自己努力不够罢了 4188

简单工厂模式(静态工厂方法模式)

目录 定义 为什么要使用工厂模式 模式结构 模式分析 实例 简单工厂模式的优点 简单工厂模式的缺点 适用环境 总结 定义 简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是...

心猿意碼 9488

手把手教你为ArduPilot添加自定义飞行模式:以自动巡检航线为例

本文详细介绍了如何为开源飞控ArduPilot添加自定义飞行模式,并以自动巡检航线为例,提供了从状态机设计、代码实现到地面站集成的完整开发指南。通过七步法手把手教学,帮助开发者深入理解飞控核心逻辑,实现无人机自主执行复杂巡检任务,满足行业应用定制需求。

weixin_29306875的博客 135

深入理解设计模式-简单工厂模式(静态工厂方法模式)

文章目录一、定义二、使用场景三、代码样例1.需求2.类图3.运算操作类4.操作工厂类5.客户端类四、优缺点结尾 一、定义 简单工厂模式是属于创建型模式,在简单工厂模式中用于被创建实例的方法通常为静态(static)方法,因此又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现。 二、使用场景 工厂类负责创建的对

少说,多做 1万+

【全新官方接口】php检测微信域名拦截,检测微信域名被封

你的域名在微信被拦截的3种常见情况 1、域名因违规或有风险被拦截(红色拦截) 2、类似taobao.com,douyin.com这种的恶意竞争式拦截,淘宝、抖音等微信的竞争对手一般都是白色拦截(白色拦截) 3、有一个中间页的拦截,需要多次点击按钮才可以跳转到你的域名的,多是一些新型域名后缀,例如.top .xyz .link后缀,这种情况,备案后可以解决(备案拦截) 通过php get_headers()函数就可以分析到结果 这个下标为6是一个URL,在微信访问后正是这个讨厌的页面! 如果切换为

TANKING,开源开发者! 2875

别再折腾框架了!用华为应用市场官方渠道搞定GBOX,安全安装谷歌全家桶(鸿蒙HarmonyOS 3/4实测)

本文详细介绍了如何在鸿蒙系统上通过华为应用市场官方渠道安全安装GBOX,实现谷歌全家桶的无损使用。该方法避免了传统破解方式的安全风险,利用沙箱技术隔离运行环境,确保系统稳定性和数据安全。特别适合鸿蒙HarmonyOS 3/4用户安全使用谷歌生态应用。

weixin_29305313的博客 4762

创建型模式-简单工厂模式(静态工厂方法模式)

目录 1. 简单工厂模式概述 1.1 概念 1.2角色 1.3 类图 2. 简单工厂模式创建原理 3. 简单工厂模式的优缺点 3.1 优点 3.2 缺点 3.3 使用场景 1. 简单工厂模式概述 1.1 概念 简单工厂模式又称为静态工厂方法模式。将一个具体类的实例化交给一个静态工厂方法来执行定义一个类,根据参数的不同返回不同的类的实例。这些类具有公共的...

云上道人的博客 569

RTAB-MAP实战:用Realsense D435i在ROS中搭建室内3D地图(附避坑指南)

本文详细介绍了如何在ROS环境下,使用Intel Realsense D435i深度相机和RTAB-MAP算法进行室内3D地图构建的完整实战流程。内容涵盖环境配置、核心节点数据流解析、关键参数调优、地图保存与重定位,并提供了实用的避坑指南,帮助机器人开发者和研究者快速实现稳定的视觉SLAM应用。

weixin_29095049的博客 490

简单工厂模式(C++描述)

一.简单工厂模式又称静态工厂方法模式(Static Factory Method),它不是Gof 所讲的23种设计模式之一,但是它却是我们在编码过程中经常使用的方法之一。 1.静态工厂方法统一管理对象的创建。静态工厂方法通过传入的参数判断决定创建哪一个产品的实例,封装了对象的创建,客户端只管消费,实现了对责任(模块)的分割。2.静态工厂方法推迟了产品的实例化。通过XML配置文件就能改变

一步一步 1万+

第七节:Vben Admin 最新 v5.0 (vben5) + Python Flask 快速入门 - 用户管理(上)

本节的内容是用户管理,后端Python代码的实现。

cuiwin的专栏 778

《Claude Code 实战》第 1 章:开启智能编程新纪元——初识 Claude Code

简单来说,Claude Code 是 Anthropic 公司推出的一款基于 Claude 3.7 Sonnet 等大语言模型的强大编程工具。但与传统的 ChatGPT 或普通的聊天机器人不同,Claude Code 具备了"动手"的能力。它不仅会"说",更会"做"。想象一下,你不再需要描述复杂的命令行参数,也不需要为了修改一个配置文件而频繁切换编辑器。Claude Code 可以直接读取你项目中的文件、理解复杂的代码库结构、执行终端命令,并直接为你生成或修改代码。

AI天才研究院 243

java静态工厂方法与工厂模式

静态工厂方法和工厂模式很像,但是在java中还是有很大区别的。(一)静态工厂方法vs工厂模式对于一个类来说,为了让客户端获得一个自身的实例,最常用的方法就是提供一个公有的构造器。除了这种使用构造器的方法之外,对于单个类来说,我们可以定义静态工厂方法来获取自身的类的一个实例。静态工厂方法和工厂模式的不同也体现在此,静态工厂方法是获取这个类自身的一个实例,他的存在是为了更好的描述和处理这个类。而工厂模式

往事散云烟,十寸光阴换一钱 9103

自动批量安装加载cran, bioconductor和github三个平台的所有的R包

自动批量安装加载cran, bioconductor和github三个平台的所有的R包

qq_40073899的博客 560

简单工厂模式(静态工厂方法(Static Factory Method)模式)

简单工厂模式 所谓的简单工厂模式-----------这里百度百科里面的解释:简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工引用百度厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现。 简单点说就是一个工厂类根据传入

sundaysunshine的博客 1733

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Java 设计模式之静态工厂方法模式

静态工厂方法模式,又称为简单工厂模式,是最简单最易理解的工厂模式,本文通过一个 “月饼” 例子,一起来学习下这种设计模式吧!

牛角尖 2442

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

android 静态工厂方法,Android 源码中的静态工厂方法

我们知道工厂模式有三兄弟,通常我们说的工厂模式指的是工厂方法模式,它的应用频率最高。本篇博客分享的简单工厂模式是工厂方法模式的“小弟”,确切的来讲它不属于设计模式,而是一种方法。此外,工厂方法模式还有一位“大哥”——抽象工厂模式。今天我们来分享一下简单工厂模式的一些情况,以及它在Android源码中的应用。定义简单工厂模式是类的创建模式,又叫做静态工厂方法(Static Factory Metho...

weixin_39616547的博客 138

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

设计模式-简单工厂模式/静态工厂方法(Static Factory Method)

定义 简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现。 优点 工厂类是整个模式的关键.包含了必要的逻辑判断,根据外界给定的信息,决定究竟应该创建哪个具体类的对象.通过使用工

Robert学习分享 2395

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

Java 设计模式-简单工厂模式 文章目录Java 设计模式-简单工厂模式介绍简单工厂模式的结构与实现**简单工厂模式的优缺点和适用环境** 介绍 简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现。 定义:定义一个工厂类,他可以根据参数的不同返回不同类的实例,被创建的实例通常都具

霍英俊 2513

23种设计模式之简单工厂模式

简单工厂 简单工厂模式 简单工厂模式不是23种里的一种,简而言之,就是有一个专门生产某个产品的类。 比如下图中的鼠标工厂,专业生产鼠标,给参数0,生产戴尔鼠标,给参数1,生产惠普鼠标。 概述 简单工厂模式又称为静态工厂模式,它不属于23种设计模式 ,但现实中却经常会用到。 具体实现为定义一个类,该类根据传入的参数,动态决定应该创建哪一个产品类(这些产品类继承自一个父类或接口)的实例。其实就是将一个具体类的实例化交给一个类的静态方法来执行,该类被称为工厂类,静态方法被称为静态工厂方法,思想也非常简单。 参

weixin_45655824的博客 446

【23种之外】设计模式介绍和简单工厂模式(静态工厂方法)

设计模式-简单工厂模式

学习笔记 293

学习笔记:简单工厂模式(静态工厂方法模式)

1、模式动机 想吃水果只需要知道水果的名字则可得到相应的水果 2、模式定义 简单工厂模式(Simple Factory Pattern):又称为静态工厂方法(Static Factory Method)模式,它属于类创建型模式。在简单工厂模式中,可以根据参数的不同返回不同类的实例。简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。 3、模式结构 简...

wsndbbhh的博客 605
上一篇: 深入分析 Java 中的中文编码问题
下一篇: 第一个完整Andorid项目总结
coding_or_coded
博客等级 码龄16年 216粉丝 115原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值