海外兼职网站建设seo推广排名重要吗

bicheng/2026/1/18 22:02:31/文章来源:
海外兼职网站建设,seo推广排名重要吗,工信部网站备案规定,网站模版参考前言 工厂模式一般指的是简单工厂模式、工厂方法模式、抽象工厂模式#xff0c;这是三种工厂模式的最后一篇#xff0c;其他两种的文章链接如下#xff1a; 设计模式之简单工厂模式-CSDN博客 设计模式之工厂方法模式-CSDN博客 建议三种模式放在一起对比学习#xff0c;… 前言 工厂模式一般指的是简单工厂模式、工厂方法模式、抽象工厂模式这是三种工厂模式的最后一篇其他两种的文章链接如下 设计模式之简单工厂模式-CSDN博客 设计模式之工厂方法模式-CSDN博客 建议三种模式放在一起对比学习更能领会其中的奥秘。看懂UML类图更是奥秘中的奥秘哦在UML类图中不同的箭头和线条代表的意义是不同的发现有很多人都画错了这里简单的梳理了一下如果需要可以移步这里设计模式之基础UML类图怎么看_uml图怎么看-CSDN博客 什么是抽象工厂模式 抽象工厂模式是一种创建型的工厂模式它提供了一个接口使客户端可以在不指定具体产品的情况下创建多个产品组中的产品对象。当存在多个抽象角色时抽象工厂模式可以用来创建一个工厂该工厂能够根据需要生成相应类型的产品。这种模式将产品的生成和使用解耦使得客户端无需了解具体产品的实现细节。 抽象工厂模式的核心思想是将工厂封装成了一个抽象接口通过这个接口来创建产品。它允许客户端通过调用抽象工厂的接口来生成多个产品族中的产品对象而无需知道每个产品族的实现细节。抽象工厂模式适用于存在多个产品族的情况这些产品族具有不同的实现但是客户端需要使用多个产品族中的产品。通过使用抽象工厂模式客户端可以灵活地使用不同的产品族而无需对代码进行大量修改。 与工厂方法模式有什么区别 抽象工厂模式和工厂方法模式都是设计模式中的对象创建型模式主要用于封装对象的创建过程以减少代码耦合。两种模式之间存在以下区别 工厂角色不同在工厂方法模式中工厂方法是实现客户端与具体产品类解耦的关键客户端通过继承或实现工厂方法实现创建产品的功能。而在抽象工厂模式中抽象工厂是客户端与具体产品类解耦的关键客户端通过实例化抽象工厂对象并调用其创建产品的方法实现创建产品的功能。创建产品的模式不同工厂方法模式中每个具体工厂类只能创建一个具体产品类的实例即“一对一”的关系。而在抽象工厂模式中每个具体工厂类可以创建多个具体产品类的实例即“一对多”的关系。产品类型不同在工厂方法模式中工厂方法返回的产品类型是固定的即每个具体工厂类只能创建一个固定类型的产品。而在抽象工厂模式中抽象工厂返回的产品类型可以是多种多样的即每个具体工厂类可以创建多个不同类型的产品。 总之抽象工厂模式相对于工厂方法模式更适用于创建一系列相关或相互依赖的对象以及对产品进行分类和组织的情况。 抽象工厂UML类图 在抽象工厂模式中存在四种角色 抽象工厂角色Abstract Factory担任这个角色的是工厂方法模式的核心它是与应用系统业务逻辑无关的。抽象工厂包含对多个产品结构的声明任何工厂类都必须实现这个接口。具体工厂角色Concrete Factory这个角色直接在客户端的调用下创建产品的实例。这个角色含有选择合适的产品对象的逻辑而这个逻辑是与应用系统的业务逻辑紧密相关的。具体工厂类是抽象工厂的一个实现负责实例化某个产品族中的产品对象。抽象产品角色Abstract Product担任这个角色的类是工厂方法模式所创建的对象的父类或它们共同拥有的接口。抽象模式所创建的所有对象的父类它负责描述所有实例所共有的公共接口。具体产品角色Concrete Product抽象工厂模式所创建的任何产品对象都是某一个具体产品类的实例。 抽象工厂实现示例 还以女娲造人的传说举一个例子刚开始造人女娲觉得还挺有意思的造的时间长了都是黄皮肤的中国人显得很单调没啥意思了于是拓展了一下业务开始造黑色皮肤的非洲人了用抽象工厂模式来演示这个过程会是什么样呢 UML类图如下 伪代码示例如下 public interface Human {/*** 人类会吃东西*/void eat();/*** 人类会喝东西*/void drink(); } public class YellowMan implements Human {Overridepublic void eat() {System.out.println(黄色皮肤的中国男人在吃东西);}Overridepublic void drink() {System.out.println(黄色皮肤的中国男人在喝水);} } public class YelloWoman implements Human {Overridepublic void eat() {System.out.println(黄色皮肤的中国女人在吃东西);}Overridepublic void drink() {System.out.println(黄色皮肤的中国女人在喝水);} } public interface HumanFactory {Human createMan();Human createWoman(); } public class YelloHumanFactory implements HumanFactory{Overridepublic Human createMan() {return new YellowMan();}Overridepublic Human createWoman() {return new YelloWoman();} } public class BlackHumanFactory implements HumanFactory{Overridepublic Human createMan() {return new BlackMan();}Overridepublic Human createWoman() {return new BlackWoman();} } public class Test {public static void main(String[] args) {HumanFactory yellowHumanFactorynew YelloHumanFactory();Human man yellowHumanFactory.createMan();Human woman yellowHumanFactory.createWoman();man.eat();man.drink();woman.eat();woman.drink();HumanFactory blackHumanFactorynew BlackHumanFactory();Human man1 blackHumanFactory.createMan();Human woman1 blackHumanFactory.createWoman();man1.eat();man1.drink();woman1.eat();woman1.drink();} } 女娲这都造人业务都拓展到海外了光能造黄种人、黑种人怎么行还想造白种人怎么办呢很简单 1、实现Human接口再实现一个白种男人、一个白种女人的类 2、实现HumanFactory接口再实现一个白种人的制造工厂 public class WhiteMan implements Human {Overridepublic void eat() {System.out.println(白种欧洲男人吃东西);}Overridepublic void drink() {System.out.println(白种欧洲男人在喝水);} } public class WhiteWoman implements Human {Overridepublic void eat() {System.out.println(白种欧洲女人在吃东西);}Overridepublic void drink() {System.out.println(白种欧洲女人在喝水);} } public class WhiteHumanFactory implements HumanFactory{Overridepublic Human createMan() {return new WhiteMan();}Overridepublic Human createWoman() {return new WhiteWoman();} } public class Test {public static void main(String[] args) {HumanFactory whiteHumanFactorynew WhiteHumanFactory();Human man2 whiteHumanFactory.createMan();Human woman2 whiteHumanFactory.createWoman();man2.eat();man2.drink();woman2.eat();woman2.drink();} } 有一天女娲觉得光造些男人、女人太单调了男人、女人之间老是干架怎么调合一下呢那就造一些可爱小朋友吧。这时就会发现如果还使用抽象工厂模式就会很尴尬HumanFactory接口里只有造男人、造女人的抽象方法如果再加一个造小朋友的接口就要对HuanFactory接口及其实现类具体工厂修改这就破坏了开闭原则。如果除了造黑人、白人、黄人外还想造点绿巨人其实倒还好和增加造白人的逻辑一样。这就是在决定是否使用抽象工厂模式的秘密所在如果要扩展的是一个产品族比较简单且适用如果想丰富某一产品族的某个产品系列就比较麻烦了 抽象工厂应用场景 有没有发现这种方式非常好完全符合开闭原则无须对原有系统进行修改下面就总结一下抽象工厂模式的实际应用场景有哪些 产品组装在现实生活中抽象工厂模式最典型的例子就是产品的组装。例如在电脑的组装过程中我们通常需要选择一系列的配件如CPU、硬盘、内存、主板、电源、机箱等。选择不同的配件组装出来的电脑是不同的这就可以看作是在使用不同的工厂来生产不同的产品。提供产品类库如果我们需要提供一个产品类库但只想显示它们的接口而不是实现那么就可以使用抽象工厂模式。例如在设计一个绘图软件时我们可能希望提供一个图形类库但并不想暴露出每个图形的具体实现细节这时就可以使用抽象工厂模式来生成各种图形对象。多产品系列如果一个系统需要由多个产品系列中的一个来配置那么也可以使用抽象工厂模式。例如在汽车制造中可能需要根据用户的选择来配置不同的汽车模型。独立于产品的创建、组合和表示如果一个系统需要独立于它的产品的创建、组合和表示那么也可以使用抽象工厂模式。例如在开发一个游戏引擎时我们可能希望游戏开发者能够使用我们提供的引擎来创建各种类型的游戏而无需关心游戏引擎底层的具体实现。 总结 抽象工厂模式是一种设计程序时的工程方法前面也说过方法是为了解决问题的不是灵丹妙药用上了就一定很好是绝不能生搬硬套的重在理解和灵活运用。 对于抽象工厂模式有以下优点 隔离了具体类的生成使得客户端并不需要知道什么被创建。当一个产品族中的多个对象被设计成一起工作时它能够保证客户端始终只使用同一个产品族中的对象。增加新的产品族很方便无须修改已有系统符合开闭原则。 抽象工厂模式也有一些缺点 增加新的产品等级结构麻烦需要对原有系统进行较大的修改甚至需要修改抽象层代码违背了开闭原则。如果客户端需要创建多个产品族的多个对象那么代码会变得很冗长和复杂。如果产品族之间有依赖关系那么需要仔细考虑如何处理这些依赖关系以避免出现循环依赖或其他问题。 因此在使用抽象工厂模式时需要根据具体的情况来考虑其优缺点并决定是否使用该模式。

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

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

相关文章

手机模板网站模板免费下载飞机订票系统网页设计总结

Transformers 微调 基于 Transformers 实现模型微调训练的主要流程数据字段数据拆分(分成训练跟测试)下载数据集数据集抽样预处理数据数据抽样微调训练配置加载 BERT 模型训练超参数(TrainingArguments)模型权重保存路径(output_d…

租赁商城手机网站开发自己可以做小程序商城吗

想要掘金全球电商市场,美国的Mercari平台绝对值得关注。Mercari,也被称作煤炉,类似于我们国内的闲鱼二手交易平台,它同时拥有美国和日本两个市场。其中,美国市场的消费需求稳定且持续增长,成为了许多跨境电…

网站架构优化做citation的网站

记录一下,遇到这个问题了,网络上看到的解决办法,亲测有效 执行sudo apt-get update ,却报以下错误,“SECURITY: URL redirect target contains control characters rejecting ” 经检查发现,/etc/apt/source.list 下的…

怎么把网站排名中国建设网官方网站app

1.缺失值的处理 (1)像在下面的这个表格里面,这个对于缺失的数据,我们需要分情况进行分析,如果这个数据就是一个数值型的数据,我们可以使用平均值进行处理; (2)对于这个…

抚州建设网站的公司河北邯郸

写在前面 通过 ghidra 工具, 但是只能用命令行启动, 不太舒服, 写个脚本生成 MacOS 的 app 格式并导入启动台. 不算复杂, 主要是解析包的一些元信息还有裁剪软件图标(通过 MacOS 自带的 API) 脚本 #!/opt/homebrew/bin/python3import os import re import subprocess as sp…

网站的主机博罗网站定制

目录 0 引言1 递增子序列1.1 我的解题 2 全排列2.1 我的解题 3 全排列 II3.1 我的解题 🙋‍♂️ 作者:海码007📜 专栏:算法专栏💥 标题:算法刷题Day29 |491.递增子序列、46.全排列、47.全排列 II❣️ 寄语&…

十堰市公司网站建设完成网站的建设工作

**单片机设计介绍, 基于单片机温湿度光照自动窗帘系统设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机的温湿度光照自动窗帘系统是一种智能家居系统,通过使用单片机作为控制核心&#xff0c…

如何创建一个新网站wordpress 代码文章

一、Log4j介绍 在项目中,不管是开发人员写代码还是测试人员写的测试代码一般都需要做一些日志来记录项目的行为,以便更好的跟踪项目中的一些交互和问题。 Log4j ( Logger For Java ) , Java 日志的记录包。 官方网站 。Log4j 是 Apache 的一个开源项目…

网站建设平台皆往乐云践新专家龙华网站建设主要工作

在全球信息产业高速发展的背景下,IDC预测,2018 到 2025 年之间,全球产生的数据量将会从 33 ZB 增长到 175 ZB, 复合增长率27%,其中超过 80%的数据都会是处理难度较大的非结构化数据,如文档、文本、图形、图…

格力网站建设需求分析门户网站界面设计

文章目录 需求分析1. 使用 splice() 方法2. 使用 filter() 方法3. 使用 splice 和展开运算符(ES6): 新的需求新的分析 需求 删除数组中的指定元素,阁下该如何应对 分析 有多种方法可以实现 JavaScript 数组删除指定元素。以下是其…

小程序搭建流程有哪五步骤seo百度发包工具

业务场景 业务开发过程中,我们经常会需要判断远程终端是否在线,当终端离线的时候我们需要发送消息告知相应的系统, 环形队列 1.创建一个index从0到30的环形队列(本质是个数组) 2.环上每一个slot是一个Set&#xf…

手机触屏网站模板百度云如何做网站

🎈 作者:互联网-小啊宇 🎈 简介: CSDN 运维领域创作者、阿里云专家博主。目前从事 Kubernetes运维相关工作,擅长Linux系统运维、开源监控软件维护、Kubernetes容器技术、CI/CD持续集成、自动化运维、开源软件部署维护…

单页网站建设教程德阳如何做百度的网站

无意之间发现个django的后台管理框架,仔细与xadmin对比了一下,无论是功能上还是便携性上都与xadmin特别相似,但个人感觉Tyadmin略胜一筹,因为外观上要比xadmin要美观,而且相比起来速度也快,部署甚至也和简单…

什么网站内链建设网站建设作业指导书

随着网络技术的不断发展,爬虫技术也越来越成熟,爬虫伪装技术也随之得到了广泛应用。在爬虫伪装技术中,如何伪装成正常的浏览器行为,让目标网站无法辨别出爬虫的存在,是爬虫伪装技术的核心。下面,我将从以下…

网站UI怎么做常德网站建设公司

Spark笔记——技术点汇总 目录 概况 手工搭建集群 引言 安装Scala 配置文件 启动与测试 应用部署 部署架构 应用程序部署 核心原理 RDD概念 RDD核心组成 RDD依赖关系 DAG图 RDD故障恢复机制 Standalone模式的Spark架构 YARN模式的Spark架构 应用程序资源构建…

网站中的公司地址怎么做建设项目验收网站

转载于:https://www.cnblogs.com/dyufei/p/6612032.html

上海涛飞专业网站建设网站建设项目设计报告

0.前言 先推荐一部电影《美国派》三部曲,成长题材系列的电影,也反映了对某避讳话题的理性看待,理所当然。 再推荐一个开发套件,NVIDIA Jetson系列开发套件,目前我在用的是Xavier NX和Orin Nano。为什么推荐呢&#xff…

南昌做网站建设公司广州建站费用

这篇文章会分享小厂如何做包体积优化相关主题,涉及内容包括:1) Android包体积优化的一种可能是比较标准的推进做法,2) 大致流程的心路历程和思考方式,3) 如何去总结和分享你们进行过的包体积优化项目。本文不仅仅是一篇分享&#…

源码论坛网站网页设计页面

Redis入门:五大数据类型 文章目录 Redis入门:五大数据类型一.概述二.Redis的基本了解三.Redis五大数据类型1.String (字符串)2.List(列表)3.Set集合(元素唯一不重复)4.Hash集合5.zSet(有序集合) 一.概述 什么是Redis Redis(Remote Dictiona…