设计模式-面试常问

这篇具有很好参考价值的文章主要介绍了设计模式-面试常问。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.单例模式
保证系统中,一个类,只有一个实例,并且提供对外访问。

优点:只有一个对象,可以节省资源。适合频繁创建销毁对象的场景。
实现:要用到static,静态私有对象。暴露单例的静态方法。
(1)饿汉模式:对象放在类成员变量中,类加载时,就可以初始化实例。
优点:线程安全,多个线程想要加载类时,只有一个线程可以加载,其它线程要等待。
缺点:会创建一些暂时不需要使用的单例时,浪费资源。降低启动速度。

(2)饱汉模式:对象创建过程,放到函数方法中。
优点:资源利用率高,延迟对象加载。
缺点:线程不安全。

如何保证只有一个对象实例:
(1)构造函数私有化,外界就不能随便new对象了,设为private或者protected;
(2)对外界,只提供一个getInstance来获取对象(对象存在则不创建);
(3)类对象设置为static修饰,可以直接用类名访问。

2. 工厂模式
把对象的创建统一管理,屏蔽创建类的复杂过程的一种设计方法。
(1)简单工厂:根据传参不同,返回不同的实例。
优点:简单,
缺点:不易扩展,增加一个类就要重新修改代码。

3.观察者模式
让多个观察者对象同时监听某一个主题对象。这个主题对象在状态变化时,会通知所有的观察者对象,使他们能够自动更新自己,核心在于被观察者中维护一个观察者的链表,如果被观察者对象有变化就会遍历这个链表通知观察者。因此核心在于两个角色:观察者与被观察者。

4.装饰者模式
动态的给对象添加新功能,核心:被装饰者(基类)、装饰者接口、用来装饰的具体类。文章来源地址https://www.toymoban.com/news/detail-658154.html

到了这里,关于设计模式-面试常问的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 设计模式-面试题

    模板方法模式、工厂方法模式、外观模式、建造者模式 代理模式、单例模式、观察者模式 设计模式(Design Pattern)是一套被反复使用、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被理解、提高代码的可靠性。 创建型:主要用于创建对象,包括各种

    2024年02月21日
    浏览(28)
  • 设计模式面试

    C++ 面向对象设计 封装:隐藏内部实现 继承:复用现有代码 多态:改写对象行为 设计模式关键在于分解和抽象; 设计模式的主要目的是 易于变化 面向对象设计原则–比设计模式更加重要 违背了设计原则,设计模式是错误的。 依赖倒置原则(DIP) 开放封闭原则(OCP) 单一职责原

    2024年02月02日
    浏览(30)
  • 【面试题】如何理解 前端设计模式-测策略模式?

    前端面试题库 ( 面试必备)              推荐:★★★★★ 地址:前端面试题库 【国庆头像】- 国庆爱国 程序员头像!总有一款适合你! 策略(Strategy)模式的定义:该模式定义了一 系列算法 ,并将每个算法封装起来,使他们可以相互替换,且算法的变化不会影响使用

    2024年02月07日
    浏览(58)
  • Java面试题--设计模式

    一、Java 中有几种设计模式? Java 中一般认为有 23 种设计模式 分为三大类: 1. 创建型模式 5 种 ① 工厂方法模式 ② 抽象工厂模式 ③ 单例模式 ④ 建造者模式 ⑤ 原型模式 2. 结构型模式 7 种 ① 适配器模式 ② 装饰器模式 ③ 代理模式 ④ 外观模式 ⑤ 桥接模式 ⑥ 组合模式 ⑦

    2024年02月12日
    浏览(39)
  • Java 大厂八股文面试专题-设计模式 工厂方法模式、策略模式、责任链模式

            在平时的开发中,涉及到设计模式的有两块内容,第一个是我们 平时使用的框架 (比如spring、mybatis等),第二个是我们自己开发业务使用的设计模式。         面试官一般比较关心的是你在开发过程中, 有没有使用过设计模式,或者你在简历上写了关于设计

    2024年02月10日
    浏览(53)
  • 设计模式与技术场景面试题详解

     

    2024年02月16日
    浏览(37)
  • C++面试:单例模式、工厂模式等简单的设计模式 & 创建型、结构型、行为型设计模式的应用技巧

            理解和能够实现基本的设计模式是非常重要的。这里,我们将探讨两种常见的设计模式:单例模式和工厂模式,并提供一些面试准备的建议。 目录 单例模式 (Singleton Pattern) 工厂模式 (Factory Pattern) 面试准备  1. 理解设计模式的基本概念 2. 掌握实现细节 3. 讨论优缺

    2024年02月01日
    浏览(66)
  • 极高频率出现的设计模式面试题

    设计模式是Java工程师日常工作中非常重要的一个技能,可以使用设计模式重构整体的架构代码、提交代码复用性、扩展性等等,如果大家想要成为Java工程师那么这项技能是必须会的,如果大家正处于找工作阶段,那么这套战略性的设计模式面试题就需要你掌握它。 1.什么是

    2024年02月05日
    浏览(30)
  • JavaSE面试题02:单例设计模式

    来源: https://www.runwsh.com/archives/biitngg1f7s0000 1.什么事Singleton? Singleton:在Java中 即指单例设置模式,探视软件开发最常用的设置模式之一 通俗解释:单例模式 单:唯一 例:实例 单例设计模式,即某个类在整个系统中只能有一个实例对象可被获取和使用的代码模式 例如:代表

    2024年02月05日
    浏览(38)
  • C++面试之线程池、智能指针、设计模式

    一、线程池 1、线程池实现步骤 这里就讲讲正常的一个线程池的实现步骤。 1.1 定义任务类:首先需要定义一个任务类,用于封装需要在线程池中执行的任务。任务类至少应该包含一个执行任务的方法,可以是一个函数指针或者是一个函数对象。 1.2 定义线程池类:接下来定义

    2024年01月16日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包