面试题汇总——设计模式
简单介绍
设计模式共有23种,创建型模式5种,结构型模式7种,行为型模式11种
- 创建型:
- 关注对象的创建过程,将对象的创建和使用分开,在使用对象时无须知道对象的创建细节。
- 对象实例化的模式,创建型模式用于解耦对象的实例化过程。
- 单例模式、工厂方法模式、抽象工厂模式、建造者模式、原型模式
- 结构型:
- 把类或对象结合在一起形成一个更大的结构。
- 适配器模式、桥接模式、组合模式、装饰模式、外观模式、亨元模式、代理模式
- 行为型:
- 类和对象如何交互,及划分责任和算法。
- 访问者模式、模板模式、策略模式、状态模式、观察者模式、备忘录模式、中介者模式、迭代器模式、解释器模式、命令模式、责任链模式
面向对象(OOP)设计的7个原则
单、开、里、依、接、合、迪
目的:实现高内聚、低耦合,增加程序的可复用性、可扩展性和可维护性。
- 单一职责原则SRP
- 类的职责要单一,不能将太多的职责放在一个类中
- 控制类的粒度大小、将对象解耦、提高其内聚性。
- 开闭原则OCP
- 对扩展开放,对修改关闭。
- 在不修改一个软件实体的基础上去扩展其功能
- 抽象化,是OCP的关键
- 里氏替换原则LSP
- 可以接受基类对象的地方,必然可以接受其子类
- 是实现OCP的重要方式之一
相关文章:
面试题汇总——设计模式
简单介绍 设计模式共有23种,创建型模式5种,结构型模式7种,行为型模式11种 创建型: 关注对象的创建过程,将对象的创建和使用分开,在使用对象时无须知道对象的创建细节。对象实例化的模式,创建型模式用于解耦对象的实例化过程。单例模式、工厂方法模式、抽象工厂模式、建造…...
Java SpringMvc
0目录 java SpringMvc拓展 1.SpringMvc 创建工程,导入依赖 配置 web.xml文件 配置Spring配置文件,resources目录下新建applicationContext.xml 控制层配置 新建list.jsp并测试 Web.xml详解 如果required是true必须要传参 设置默…...
JVM运行时区域——对象创建内存分配过程
新创建的对象,都存放在伊甸园区域,当垃圾回收时,将伊甸园区域的垃圾数据销毁,然后将存活的对象转移到幸存者0区域,之后创建的新的对象还是存放在伊甸园区域,等到再次垃圾回收后,将伊甸园区域和幸…...
Springboot项目排除Bean的方法
前言: 在最近工作中,相关业务代码需要引用一个工具包。原来的同事在工具包中,封装了Spring AOP切面的Bean,但是这样的工具包非常不友好,工具包不应该有这些特殊的处理。有了这些特殊的处理,引用方也要特殊处…...
阿里云国际版云服务器防火墙设置
阿里云国际版云服务器防火墙设置 入侵防御页面为您实时展示云防火墙拦截流量的源IP、目的IP、阻断应用、阻断来源和阻断事件详情等信息。本文介绍了入侵防御页面展示的信息和相关操作,下面和012一起来了解阿里云国际版云服务器防火墙设置: 前提条件 您需…...
科技资讯|苹果开放Vision Pro头显开发套件申请,此前曝光三款电池
苹果今天宣布面向开发人员,正式接受 Vision Pro 头显开发套件申请,从而帮助其开发和测试应用程序。 苹果官方页面介绍,开发人员在获得 Vision Pro 头显开发套件之外,还可以获得设备设置和入门方面的帮助,与 Apple 专…...
Langchain 的 LLMChain
Langchain 的 LLMChain 1. 开始使用运行 LLM 链的其他方式解析输出从字符串初始化 LLMChain 是一个简单的链,它围绕语言模型添加了一些功能。它在整个LangChain中广泛使用,包括在其他链和代理中。 LLMChain 由 PromptTemplate 和语言模型(LL…...
100天精通Golang(基础入门篇)——第17天:深入解析Go语言中的指针
🌷 博主 libin9iOak带您 Go to Golang Language.✨ 🦄 个人主页——libin9iOak的博客🎐 🐳 《面试题大全》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 🌊 《I…...
第七章:WILDCAT: 弱监督学习的深度卷积神经网络用于图像分类、点位定位和分割
0.摘要 本文介绍了WILDCAT,一种深度学习方法,它旨在通过对齐图像区域来获得空间不变性和学习强烈局部化特征。我们的模型仅使用全局图像标签进行训练,并致力于三个主要的视觉识别任务:图像分类、弱监督的逐点对象定位和语义分割。…...
Axios-post请求下载文件
场景背景 1.一般来说,都是使用get请求后台接口,如此后台返回文件流于浏览器,则可直接下载。 2.那么除一般情况,就有特殊情况,比如你的请求接口参数特别长,此时便不可使用get请求,get请求的参数…...
视频增强技术-对比度增强
在图像处理中,由于获取的图像质量不好,需要通过对比度增强来提升图片质量,主要解决的是由于图像灰度级范围较小造成的对比度较低的问题,作用是使图像的灰度级范围放大,从而让图像更加清晰。主要对比度增强方法包括线性…...
uni-app点击按钮弹出提示框(以弹窗的形式显示),选择确定和取消
学习目标: 学习目标如下所示: uni-app点击提交按钮后弹出提示框,(以弹窗的形式显示),提示用户是否确认提交(即确定和取消),点击确定后调用真正的提交方法,将数据传给后端…...
linux部署es+kibana
部署kibana与es 3.4.1、拷贝文件 首先把elasticsearch-7.3.1-linux-x86_64.tar.gz 和kibana-7.3.1-linux-x86_64.tar.gz拷贝到linux上,比如我是拷贝/usr/local 目录下 3.4.2、解压文件 然后分别执行tar -zxvf elasticsearch-7.3.1-linux-x86_64.tar.gz和tar -zx…...
二十三种设计模式第十七篇--迭代子模式
迭代子模式是一种行为型设计模式,它允许你按照特定方式访问一个集合对象的元素,而又不暴露该对象的内部结构。迭代子模式提供了一种统一的方式来遍历容器中的元素,而不需要关心容器的底层实现。 该模式包含以下几个关键角色: 迭…...
《零基础入门学习Python》第056讲:论一只爬虫的自我修养4:网络爬图
今天我们结合前面学习的知识,进行一个实例,从网络上下载图片,话说我们平时闲来无事会上煎蛋网看看新鲜事,那么,熟悉煎蛋网的朋友一定知道,这里有一个 随手拍 的栏目,我们今天就来写一个爬虫&…...
23.7.26总结(博客项目)
接下来要完成: 从主页面点击进入时,通过作者id从数据库查找作者的nickname点击文章收藏(需要有收藏列表)首页还要加最新发布,点赞收藏最多作者名得改成文章作者(通过user_id从user表中拿数据)消…...
安全第一天
1. 编码 1.1 ASCLL编码 ASCII 是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是最通用的信息交换标准,并等同于国际标准ISO/IEC 646。 1.2 URL编码 URL:(统一资源定位器、定位地址,俗称网页…...
SpringCloud学习路线(12)——分布式搜索ElasticSeach数据聚合、自动补全、数据同步
一、数据聚合 聚合(aggregations): 实现对文档数据的统计、分析、运算。 (一)聚合的常见种类 桶(Bucket)聚合: 用来做文档分组。 TermAggregation: 按照文档字段值分组…...
cloudstack的PlugNicCommand的作用
PlugNicCommand是CloudStack中的一个命令,用于将一个网络接口卡(NIC)插入到虚拟机实例中。它的作用是将一个已存在的NIC连接到指定的虚拟机,以扩展虚拟机的网络功能。 具体来说,PlugNicCommand可以完成以下几个步骤&a…...
LT9211C 是一款MIPI/RGB/2PORT LVDS互转的芯片
LT9211C 1.描述: Lontium LT9211C是一个高性能转换器,可以在MIPI DSI/CSI-2/双端口LVDS和TTL之间相互转换,除了24位TTL到24位TTL,并且不推荐同步和DE的2端口10位LVDS和24位TTL之间的转换。LT9211C反序列化输入的MIPI/LVDS/TTL视…...
让普通鼠标秒变生产力工具:Mac Mouse Fix 深度体验指南
让普通鼠标秒变生产力工具:Mac Mouse Fix 深度体验指南 【免费下载链接】mac-mouse-fix Mac Mouse Fix - Make Your $10 Mouse Better Than an Apple Trackpad! 项目地址: https://gitcode.com/GitHub_Trending/ma/mac-mouse-fix 还在为Mac上鼠标滚轮滚动生硬…...
uni-app怎么使用Lottie动画 uni-app引入Json动画渲染教程【优化】
uni-app中Lottie动画需分端实现:H5用lottie-web(需条件引入),小程序用lottie-wx(JSON放lottie目录,组件带animation-path),App端用uni-lottie原生插件(JSON放nativeResou…...
保姆级教程:用Docker Compose和Nginx给内网Nexus仓库上HTTPS(自签证书避坑指南)
内网Nexus私有仓库HTTPS全栈实战:从Docker部署到证书信任闭环 当开发团队规模超过10人时,私有制品仓库就成了刚需。上周帮某金融客户部署内网Nexus时,发现Maven 3.8.1强制HTTPS的策略让很多工程师措手不及——内网没有公网域名,Le…...
C++的std--format编译期检查与类型安全输出在模板中的实现
C20引入的std::format为现代C带来了类型安全的格式化输出能力,其编译期检查机制与模板的结合更是为开发者提供了强大的工具。本文将深入探讨std::format在模板中的实现原理,揭示其如何通过编译期检查确保类型安全,并展示其在泛型编程中的独特…...
ofa_image-caption镜像免配置:内置CUDA 11.8+cuDNN 8.6预编译环境
ofa_image-caption镜像免配置:内置CUDA 11.8cuDNN 8.6预编译环境 你是不是也遇到过这种情况?看到一张有趣的图片,想为它配上一段精准的描述,却一时词穷。或者,手头有一大堆产品图片,需要批量生成英文介绍&…...
Instructions终极指南:5个简单步骤创建你的第一个iOS引导标记
Instructions终极指南:5个简单步骤创建你的第一个iOS引导标记 【免费下载链接】Instructions Create walkthroughs and guided tours (coach marks) in a simple way, with Swift. 项目地址: https://gitcode.com/gh_mirrors/in/Instructions Instructions是…...
一键生成爆炸图:Nano-Banana拆解引擎在产品说明书制作中的应用
一键生成爆炸图:Nano-Banana拆解引擎在产品说明书制作中的应用 1. 产品拆解可视化的行业痛点 在产品说明书、维修手册和教育材料的制作过程中,清晰展示产品内部结构和组件关系是至关重要的。传统方法通常面临三大挑战: 3D建模成本高&#…...
Phi-3-vision-128k-instruct Ollama国内镜像源加速部署与多模型管理
Phi-3-vision-128k-instruct Ollama国内镜像源加速部署与多模型管理 1. 为什么需要国内镜像源 如果你在国内尝试使用Ollama拉取Phi-3-vision这样的大型模型,可能会遇到下载速度慢甚至失败的问题。这是因为默认的模型仓库位于海外服务器,网络连接不稳定…...
Qwen3-14B Python数据分析环境配置:Anaconda与PyCharm集成
Qwen3-14B Python数据分析环境配置:Anaconda与PyCharm集成 1. 为什么需要专业的数据分析环境 在开始使用Qwen3-14B进行数据分析和AI应用开发前,搭建一个稳定、隔离的Python环境至关重要。想象一下,你正在装修房子,Anaconda就是你…...
避开PLC烧毁陷阱:FX3S晶体管输出必须知道的7个细节(含虚设电阻计算)
避开PLC烧毁陷阱:FX3S晶体管输出必须知道的7个细节(含虚设电阻计算) 在工业自动化现场,FX3S系列PLC的晶体管输出模块烧毁问题堪称"隐形杀手"。去年某汽车生产线因一个0.5A保险丝选型错误导致全线停产8小时,损…...
