当前位置: 首页 > wzjs >正文

手机网站图片滑动网站的可用性

手机网站图片滑动,网站的可用性,重庆九龙坡区最新消息,做app网站有哪些面试过程中会让你介绍你项目或实习中使用的设计模式,你该如何说明 工厂模式 工厂模式是把对象创建的逻辑封装到一个工厂类里面,我们用工厂类来创建对象 为什么需要工厂类(优点): 可以集中管理对象的创建规则。例如要…

面试过程中会让你介绍你项目或实习中使用的设计模式,你该如何说明


工厂模式

工厂模式是把对象创建的逻辑封装到一个工厂类里面,我们用工厂类来创建对象

为什么需要工厂类(优点):

  1. 可以集中管理对象的创建规则。例如要求这个对象必须经过xx校验,写到工厂类里好过每一次使用这个类的时候再检验一轮
  2. 提高代码可维护性和拓展性。工厂类可以通过接口或抽象类定义创建方法,允许在不修改现有代码的情况下添加新的产品类型
  3. 简化复杂对象创建逻辑,优化代码冗余。对象的创建过程可能涉及复杂的初始化步骤(如参数校验、依赖注入、资源配置等),这些逻辑分散在业务代码中会导致代码冗余和可读性下降
  4. 对象逻辑变动时,无需修改具体业务,只需修改工厂类。将对象创建逻辑封装在工厂类中,业务代码只需通过工厂获取对象,无需关心具体实现。即使后续对象的创建方式变化,只需修改工厂类,而不影响业务逻辑

缺点:

  1. 过度设计问题。在需求简单且变化不大的场景下使用工厂模式,可能导致 “设计过度”,增加维护成本
  2. 子类膨胀问题。工厂方法模式中,每新增一种产品就需要新增一个具体工厂类,导致子类数量过多,增加系统负担

什么业务场景使用工厂模式:

  1. 对象要进行大量的校验逻辑或创建逻辑非常复杂。例如Sqlsession需要url,账号,密码,数据库类型等
  2. 一个类有多个子类,且该类适用于多个不同的场景。例如这是一个创建游戏角色的工厂类,有射手,战士,刺客等

Spring:

Datasource,使用工厂模式创建不同类型的数据源,客户端只需依赖 DataSource 接口,无需关心具体实现

可通过配置动态切换数据源(如从 HikariCP 切换到 Druid)


策略模式

策略模式是策略接口来定义统一行为的,具体的策略细节由子类来实现

可以将策略理解成方法,也就是方法类

例如你可以定义一个队列Queue,Queue的基本方法是add()和remove(),这个就是队列的基本行为。其他的优先队列等他会有Queue的基本行为,然后再进行拓展。

为什么需要策略模式(优点):

  1. 当前业务有统一的基础方法
  2. 策略模式切换灵活,可在基类基础上应对不同的场景
  3. 避免大量的if-else,代码可读性更强

缺点:

  1. 策略过多时会增加维护成本
  2. 简单策略导致的资源浪费,策略细节必须由子类来实现,所以即使是很简单的实现类也要弄多一个子类

什么业务场景使用策略模式:

业务有共同的行为,例如飞书通知和钉钉通知这种IM通知,一般来说都会定义一个接口有notify()基本方法来进行通知,这是他们的基本方法,其他方法自己在子类进行自定义增强

Spring:

TransationalManager事务管理器有

getTransational(),commit(),rollback()三种方法

它的子实现类有JPA事务和JDBC事务


责任链模式

责任链模式是让我们的一个请求,沿着一个链条从前往后进行处理

将多个处理者连成一条链,并沿着这条链传递请求,直到有对象处理它为止

优点:

  1. 解耦,降低耦合度,只需将实现类提交到责任链中
  2. 责任链动态调整机制,无需修改原有的代码,只需要修改责任链就可以达到业务修改
  3. 适用于串行,层次化处理逻辑

缺点:

  1. 配置失败可能会导致请求漏处理风险
  2. 处理链过长导致的性能下降问题
  3. 引入过多的类和对象增加系统复杂度
  4. 循环引用问题

什么业务场景使用责任链模式:

  1. 大量的if-else复杂逻辑处理,串行处理
  2. 处理逻辑可以复用,并且可以组合链节点应对不同业务的场景

Spring:

Spring的过滤器filter和拦截器interceptor用到了责任链模式

先进入DispatcherServlet拦截器-preHandler请求先处理-postHandler处理视图渲染前逻辑-afterCompletion请求后处理


单例模式

保证一类对象只有一个实例,防止创建多个实例,导致资源占用,使用对象不一致等问题

为什么需要单例模式:

  1. 全局状态管理,系统中需要维护一个全局状态(如配置信息、计数器),确保不同模块访问的是同一状态。例如日志管理器,配置管理器,Spring默认是单例-RedisTemplate-KafkaTemplate
  2. 需要为多个模块提供统一的资源访问入口。数据库连接池,线程池
  3. 适用于可复用场景,避免重复创造类。创建实例需要消耗大量资源,单例可减少开销
  4. 保证多线程下的线程安全和状态同步。如全局计数器和序列化生成器保证并发安全

缺点:

  1. 违反单一职责和开闭职责,单例类既负责创建又承担业务逻辑,单例类通常难以扩展,若需修改行为,可能需要直接修改单例类代码
  2. 若单例创建未正确处理线程安全,可能导致多实例问题。如双重检查锁定未使用 volatile
  3. 内存泄漏问题。单例持有的资源若未正确释放,会导致内存泄漏

什么业务场景使用单例模式:

  1. 需要有一个全局统一的实例,而不是多实例。如日志管理器,数据库连接池,线程池
  2. 需要保证多线程下的线程安全问题。如全局计数器

Spring:

Spring的Bean默认是单例模式,如RedisTemplate和KafkaTemplate等


文章转载自:

http://pqOs2TJ4.Lnyds.cn
http://GK2sIrB3.Lnyds.cn
http://qFw9TXki.Lnyds.cn
http://lqmXmYKN.Lnyds.cn
http://cA19DOg6.Lnyds.cn
http://71anZR97.Lnyds.cn
http://KdnaEWmj.Lnyds.cn
http://WyjEmqXa.Lnyds.cn
http://GMjqpVjc.Lnyds.cn
http://YyzxPMCc.Lnyds.cn
http://JeyfUnkP.Lnyds.cn
http://w9JIZlDn.Lnyds.cn
http://hIJRdqzO.Lnyds.cn
http://DlzZdpoG.Lnyds.cn
http://4VuIgUcC.Lnyds.cn
http://cUxmrvf5.Lnyds.cn
http://RmnFnjHJ.Lnyds.cn
http://2qR6EvV1.Lnyds.cn
http://BNyDmhC6.Lnyds.cn
http://evzL0KZW.Lnyds.cn
http://76UNfdak.Lnyds.cn
http://k8jr2uyZ.Lnyds.cn
http://6UJfmKns.Lnyds.cn
http://NCmklyci.Lnyds.cn
http://UFXKGk24.Lnyds.cn
http://evtpXAyc.Lnyds.cn
http://ggxiDUeA.Lnyds.cn
http://Mev4me24.Lnyds.cn
http://zEHgi9kG.Lnyds.cn
http://mtI75FrC.Lnyds.cn
http://www.dtcms.com/wzjs/672907.html

相关文章:

  • 长宁区网站建设开发公司网站生成二维码
  • 天津网站建设举措一加官网
  • 国外免费推广网站网站建设服务费如何做会计分录
  • 网站开发工作总结东莞教育团购网站建设
  • 建立网站需要多长钱大朗做网站
  • 广东建设监理协会网站题库浙江省旅游企业网站建设情况
  • 青岛网站建设报价网站主页建设格式
  • 首信建设网站网站怎么做站群
  • 网站建设及相关流程图淮南网站制作
  • 多语言网站怎么实现域名查询 站长查询
  • 微信上的网站怎么做的国内做家具外贸的网站
  • 建设门户网站需要注意什么意思建立良好的公共秩序教学设计
  • 东莞数据线厂家东莞网站建设网络营销策划推广公司一一
  • 建设网站需要问的问题手机网站信任从哪里设置
  • 怎么用flashfxp上传网站学习建设网站需要多久
  • 开通网站流程高端seo服务
  • 做网站优化时 链接名称"首页"有必要添加nofollow吗?破解网站后台密码有人做吗
  • 佛山企业网站推广263企业邮箱入口登录方法
  • 网站建设要注意哪些计算机软件开发培训机构
  • 搜狗站长平台主动提交wordpress批量发邮
  • 品牌策划费用哈尔滨优化关键词免费
  • 阿里云服务器可以做商业网站php网站开发工程师招聘要求
  • 北京响应式h5网站开发登錄wordpress界面
  • 中小企业网站制作过程中要注意什么纸巾 技术支持 东莞网站建设
  • 高端网站定制设计公司沭阳建设局网站
  • 淄博市建设局网站营销网站优化推广
  • 重庆网站设计重庆最加科技谷歌浏览器官方app下载
  • 大连百度推广开户网站优化推广 视屏
  • 如何做问卷调查网站论坛交流平台有哪些
  • 鞍山市城乡建设局网站策划书怎么写 范文