虚拟机 wordpressseo咨询推广

bicheng/2026/1/22 23:01:27/文章来源:
虚拟机 wordpress,seo咨询推广,网络舆情监测,孝感市建设局网站1. 工厂模式介绍 工厂模式#xff08;Factory Pattern#xff09;是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式#xff0c;它提供了一种创建对象的最佳方式。 工厂模式有三种实现方式#xff1a; 简单工厂模式工厂方法模式抽象工厂模式 2. 工厂方…1. 工厂模式介绍 工厂模式Factory Pattern是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式它提供了一种创建对象的最佳方式。 工厂模式有三种实现方式 简单工厂模式工厂方法模式抽象工厂模式 2. 工厂方法模式 定义一个用于创建对象的接口让子类决定实例化哪个产品类对象。工厂方法使一个产品类的实例化延迟到其工厂的子类。 2.1 工厂方式模式实现原理 工厂方法模式的目的很简单就是封装对象创建的过程提升创建对象方法的可复用性。 工厂方法模式的主要角色 抽象工厂提供了创建产品的接口调用者通过它访问具体工厂的工厂方法来创建产品。具体工厂主要是实现抽象工厂中的抽象方法完成具体产品的创建。抽象产品定义了产品的规范描述了产品的主要特性和功能。具体产品实现了抽象产品角色所定义的接口由具体工厂来创建它同具体工厂之间一一对应 按照上面UML类图代码如下 抽象工厂 public interface FreeGoodsFactory {IFreeGoods getInstance(); }具体工厂 public class DiscountFreeGoodsFactory implements FreeGoodsFactory {Overridepublic IFreeGoods getInstance() {return new DiscountFreeGoods();} }public class SmallGiftFreeGoodsFactory implements FreeGoodsFactory {Overridepublic IFreeGoods getInstance() {return new SmallGiftFreeGoods();} }创建简单工厂用来创建工厂类对象 public class FreeGoodsFactoryMap {private static final MapInteger,FreeGoodsFactory cachedFactories new HashMap();static{cachedFactories.put(1, new DiscountFreeGoodsFactory());cachedFactories.put(2, new SmallGiftFreeGoodsFactory());}public static FreeGoodsFactory getParserFactory(Integer type){if(type 1){FreeGoodsFactory freeGoodsFactory cachedFactories.get(1);return freeGoodsFactory;}else if(type 2){FreeGoodsFactory freeGoodsFactory cachedFactories.get(2);return freeGoodsFactory;}return null;} }测试client /*** 按照类型的不同发放商品*/public static void main test(String[] args){//根据类型获取工厂FreeGoodsFactory goodsFactory FreeGoodsFactoryMap.getParserFactory(awardInfo.getAwardType());//从工厂中获取对应实例IFreeGoods freeGoods goodsFactory.getInstance();System.out.println(工厂方法模式);ResponseResult result freeGoods.sendFreeGoods(awardInfo);return result;}3. 抽象工厂模式 抽象工厂模式(Abstract Factory Pattern) 原始定义提供一个创建一系列相关或相互依赖对象的接口而无须指定它们具体的类。 抽象工厂模式为创建一组对象提供了解决方案.与工厂方法模式相比,抽象工厂模式中的具体工厂不只是创建一种产品,而是负责创建一个产品族 抽象工厂模式UML类图如下 抽象工厂模式的主要角色如下 抽象工厂Abstract Factory它声明了一种用于创建一族产品的方法,每一个方法对应一种产品.具体工厂Concrete Factory主要是实现抽象工厂中的多个抽象方法完成具体产品的创建.抽象产品Product定义了产品的规范描述了产品的主要特性和功能抽象工厂模式有多个抽象产品。具体产品ConcreteProduct实现了抽象产品角色所定义的接口由具体工厂来创建它 同具体工厂之间是多对一的关系。 3.1 代码实现 抽象工厂 public interface AppliancesFactory {AbstractTV createTV();AbstractFreezer createFreezer(); }具体工厂实现。每一个具体工厂方法,可以返回一个特定的产品对象,而同一个具体工厂所创建的产品对象构成了一个产品族。 public class HairFactory implements AppliancesFactory {Overridepublic AbstractTV createTV() {return new HairTV();}Overridepublic AbstractFreezer createFreezer() {return new HairFreezer();} }public class HisenseFactory implements AppliancesFactory {Overridepublic AbstractTV createTV() {return new HisenseTV();}Overridepublic AbstractFreezer createFreezer() {return new HisenseFreezer();} }抽象产品 public interface AbstractFreezer {} public interface AbstractTV {}具体产品实现 public class HairFreezer implements AbstractFreezer {} public class HisenseFreezer implements AbstractFreezer {} public class HairTV implements AbstractTV {} public class HisenseTV implements AbstractTV {}测试client public class Client {private AbstractTV tv;private AbstractFreezer freezer;public Client(AppliancesFactory factory){//在客户端看来就是使用抽象工厂来生产家电this.tv factory.createTV();this.freezer factory.createFreezer();}public AbstractTV getTv() {return tv;}public void setTv(AbstractTV tv) {this.tv tv;}public AbstractFreezer getFreezer() {return freezer;}public void setFreezer(AbstractFreezer freezer) {this.freezer freezer;}public static void main(String[] args) {Client client new Client(new HisenseFactory());AbstractTV tv client.getTv();System.out.println(tv);AbstractFreezer freezer client.getFreezer();System.out.println(freezer);} }抽象工厂模式优点 对于不同产品系列有比较多共性特征时可以使用抽象工厂模式有助于提升组件的复用性. 当需要提升代码的扩展性并降低维护成本时把对象的创建和使用过程分开能有效地将代码统一到一个级别上 解决跨平台带来的兼容性问题 如果对你有帮助可以关注博主不定期更新各种技术文档 给博主一个免费的点赞以示鼓励谢谢 ! 欢迎各位点赞评论收藏⭐️

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/87709.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

国家网站icp备案查询前端做的比较好的网站

python-pytorch使用日志 1. optimizer.zero_grad()和model.zero_grad()的区别2. cbow和skip-gram的训练数据格式3. 获取cbow和skip-gram训练后的中文词向量4. 获取到词向量后可以做什么5. 余弦相似度结果的解释 1. optimizer.zero_grad()和model.zero_grad()的区别 都是清空模…

济源网站建设电话jsp网站地图生成器

Redis的基本数据类型 redis的基本数据类型(value): string,普通字符串 hash(哈希),适合存储对象 list(列表),按照插入顺序排序,可以由重复的元素 set(无序集合),没有重复的元素 sorted set(有序集合)&…

企业网站策划怎么样部队网站建设建议

Android TV 上的谷歌语音助手是一个强大的工具,它允许用户通过语音命令来控制电视设备、搜索内容、管理智能家居设备等。下面是一些关于在 Android TV 上使用谷歌语音助手的实战建议: 启用和设置: 确保你的 Android TV 设备已经连接到了互联…

wordpress网站好用吗wordpress主题 红木

一题目描述: 给定一个数组,只有一个数字出现一次,其余都是两次,判断那个数字 思路: 不断取出数据进行异或,最后一个数字,因为相同的数字会抵消代码: public class Solution {public …

网站图片自动下载打开网站弹出广告js

3. 基本数据与运算 3.6 运算符 3.6.1 算术运算符 在 Java 中,算术运算符包含:、-、*、/、% public class ArithmeticOperator { public static void main(String[] args) { int a 10; // 定义了一个整型类型的变量 a,它的值是 10 int b …

建个公司网站一年多少钱彩票网站开发需求文档

论文笔记整理:周虹廷,浙江大学研究生。研究方向:知识图谱,图表示学习等。论文链接:https://arxiv.org/pdf/2001.06137.pdf本文是发表在ICLR2020上针对图数据做节点半监督分类任务的论文。现有的算法解决图上节点分类问…

长宁区网站设计建设基础建设股票

kafka可视化工具 随着科技发展,中间件也百花齐放。平时我们用的redis,我就会通过redisInsight-v2 来查询数据,mysql就会使用goland-ide插件来查询,都挺方便。但是kafka可视化工具就找了半天,最后还是觉得redpandadata…

联盟网站建设php网站开发模板

在C语言里printf是什么意思?怎么用??1,printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出信息。2,printf()函数的调用格式为: printf("", )。3,格式输出,它是c语言中产生格式化输出的函…

军事网站建设怎么打wordpress修改首页模板文件

CSS弹性盒模型 display:flex;常用参数flex-directionjustify-contentalign-itemsflex-wrapflex-flowalign-contentorderflex-growflex-shrinkflex-basis 常见的布局1. 水平居中2. 垂直居中3. 水平垂直居中4. 等分布局5. 响应式布局6. 网格布局 常见的布局封装 display:flex;常用…

贵阳公司网站建设网站推广软文案例

在今年 3 月,Ordinals 凭空问世,定义了一套在比特币网络运行的序数协议,使得 Token 和 NFT 能在比特币网络上实现并稳定运行,拉来了比特币铭文市场的新序幕。而在此后,在包括 BRC20 等在内的一系列应用的出现&#xff…

网站建设主题的确定如何做资源论坛网站

Migration和Navicat是两个不同类型的产品,各自在特定场景下有各自的优势。 Migration主要针对的是数据的迁移或复制,从一个数据库迁移到另一个数据库,或者从一个环境复制到另一个环境。它主要关注的是数据的迁移和复制过程,不提供…

广州响应式网站建设深圳商标设计公司vi设计

1. 介绍 中文分词是将连续的中文文本切分成一个个独立的词语的过程,是中文文本处理的基础。IK分词器是一个高效准确的中文分词工具,采用了"正向最大匹配"算法,并提供了丰富的功能和可定制选项。 2. IK分词器的特点 细粒度和颗粒…

中国站长之家网站百捷网站建设工资

1 毕业论文选题的原则 毕业论文选题一般要求满足以下原则: ①开拓性:前人没有专门研究过或虽已研究但尚无理想的结果,有待进一步的探讨和研究,或是学术界有分歧,有必要深入研究探讨的问题;…

广州网站制作公司电话wordpress公益

小哥哥小姐姐觉得有用点个赞呗! C#指定窗口显示位置的方法 1.使用StartPosition MainForm mainform; mainformnew MainForm (); dlgCtrl.StartPosition FormStartPosition.Manual;下面是FormStartPosition里边的定义与解释 // 指定窗体的初始位置。public …

网站建设公司推销免费不收费的app

逻辑回归的代价函数通常使用交叉熵损失来定义。这种损失函数非常适合于二元分类问题。 本篇来推导一下逻辑回归的代价函数。 首先,我们在之前了解了逻辑回归的定义:逻辑回归模型是一种用于二元分类的模型,其预测值是一个介于0和1之间的概率…

建立soho公司网站关于电子商务的知识

Hello everybody!今天给大家介绍一道我认为比较经典的编程练习题&#xff0c;之所以介绍它是因为这道题涉及到二维数组的构建&#xff0c;如果用C语言动态构建二维数组是比较麻烦的&#xff0c;而用C中STL的vector<vector<int>>,就可以立马构建出来&#xff0c;这也…

搜索引擎优化答案系统优化的意义

先说情况&#xff0c;大专毕业&#xff0c;18年通过校招进入湖南某软件公司&#xff0c;干了接近6年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试&#xf…

自己没有货源怎么开网店苏州网站排名优化价格

一、前言 摄像机在虚幻中的应用是最常见的。如通常在游戏或应用中会常常出现需要切换不同视角的情况、摄像机拉近缩小等&#xff0c;这个在虚幻中是怎么实现的呢。 二、实现视点切换 2.1、提前设置场景的视点&#xff1a;如图2.1.1所示添加一个摄像机视点到关卡场景中&#x…

专业的企业网站建设公司推广网站注册赚佣金

算法沉淀——优先级队列 01.最后一块石头的重量02.数据流中的第 K 大元素03.前K个高频单词04.数据流的中位数 优先队列&#xff08;Priority Queue&#xff09;是一种抽象数据类型&#xff0c;它类似于队列&#xff08;Queue&#xff09;&#xff0c;但是每个元素都有一个关联的…