Java面试题:单例设计模式、适配器模式的不同方式
QUESTION:单例设计模式、适配器模式的不同方式?
ANSWER:
1、单例设计模式,适配器设计模式
单利设计模式:
在java中,单例模式是指为了保证类在内存中只有一个对象,而形成的一种固有的代码模式!
适配器设计模式:
在java中,适配器设计模式是指为了监视某些行为,但是对于每种监听到的行为又有不同的处理,为了能够让监听者自行来处理监听到指定行为后,要做的后续操作,而形成的一种固有的代码模式!
适配器标准课上答案:
* a.什么是适配器
* 在使用监听器的时候, 需要定义一个类事件监听器接口.
* 通常接口中有多个方法, 而程序中不一定所有的都用到, 但又必须重写, 这很繁琐.
* 适配器简化了这些操作, 我们定义监听器时只要继承适配器, 然后重写需要的方法即可.
* b.适配器原理
* 适配器就是一个类, 实现了监听器接口, 所有抽象方法都重写了, 但是方法全是空的.
* 适配器类需要定义成抽象的,因为创建该类对象,调用空方法是没有意义的
* 目的就是为了简化程序员的操作, 定义监听器时继承适配器, 只重写需要的方法就可以了.
2、饿汉式和懒汉式的区别
使用场合:
饿汉式: 开发用
懒汉式: 面使用,开发一般不用
思想:
饿汉式: 类一加载就生成对象。
懒汉式: 在调用获取对象的方法的时候生成。
实用性:
饿汉式: 安全,效率高。相对懒汉式会在未使用之前就占用内存。
懒汉式: 存在线程安全漏洞,可以利用同步解决,但是效率会变低。内存方面符合了编程中的延迟加载思想。(在面试中面试官会比较希望答出这一点)
更多关于设计模式的内容请查阅:https://blog.csdn.net/yang13563758128/article/details/87344139
Java面试题:单例设计模式、适配器模式的不同方式相关推荐
- 02_javaSE面试题:单例设计模式
还记得很多年前,面试就让在白板上写个单例模式,当时技术渣渣,还写的是class A.面试官还说,你就不能写个Singleton. 面试题 编程题:写一个Singleton示例 解析 什么是Single ...
- 笔记:Java中的单例设计模式
之前接触过单例模式,当初不明白这样的设计用意,今天特地研究了下java中的单例设计模式的用处及用法. 单例模式:单例模式是一种常用的软件设计模式.在它的核心结构中只包含一个被称为单例类的特殊类.一个类 ...
- java实现一个单例设计模式_Java正确实现一个单例设计模式的示例
Java正确实现一个单例设计模式的示例 发布于 2021-1-12| 复制链接 分享一篇关于关于Java正确实现一个单例设计模式的示例,小妖觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的 ...
- Java中的单例设计模式
什么是单例设计模式 所谓单例设计模式,就是采取一定的方法保证整个软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法. 目的:使用着在main方法中就不可以自己创建实例对象 ...
- 26、Java 简单实现单例设计模式(饿汉式和懒汉式)
文章目录 一.概念 二.饿汉式 三.懒汉式 一.概念 ✏️[Singleton Pattern]如果一个类被设计成单例设计模式,则在整个应用程序运行过程中,该类只能存在一个实例. 二.饿汉式 思考:如 ...
- Java 多线程之单例设计模式
转载:https://segmentfault.com/a/1190000007504892 概念: Java中单例模式是一种常见的设计模式,单例模式的写法有好几种,这里主要介绍两种:懒汉式单例.饿汉 ...
- 对于java程序语言的单例设计模式讲解
1.设计模式:解决某一类问题最行之有效的方法.(java中有23种通用设计模式) 单例设计模式:解决一个类在内存中只存在一个对象. 2.单例设计模式有两种方式: 1)饿汉式 先初始化对象.当类一进内存 ...
- java中饿汉与懒汉的故事(单例设计模式)
java中的单例设计模式 关于设计模式,这其实是单独存在的东西,它不属于java,但是在java中使用较多,所以今天我就给大家介绍下单例设计模式中的饿汉和懒汉这俩朴素的打工人. 首先我先说明下单例设计 ...
- 单例设计模式(饿汉式VS懒汉式)
什么是单例模式 单例(单个的实例) 1.所谓单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法 2.单例设计模式有两种方式:饿 ...
最新文章
- java jdbc 表存在_使用JDBC查询是否存在某表或视图,按月动态生成表
- HDU 1026 Ignatius and the Princess I 迷宫范围内的搜索剪枝问题
- python绘图subplot绘制5幅图:以2行绘制,首行3幅图,次行2幅图居中(内含绘制3幅图简单版)
- Loadrunner11录制过程中报错:由于另一个程序正在运行中,此操作无法完成
- CString转化问题
- STM32F103_RGB彩灯
- 晨哥真有料丨你太容易被得到了!
- python3多进程写时拷贝_python利用进程池,多进程拷贝文件
- python之深浅copy与id
- 人工智能知识全面讲解: RBF神经网络
- TikTok Shop 英国限售商品规则
- 数据库编程之嵌入式SQL
- [About Design] 各类素材网站
- 苹果公司的iPhone产品以及其历史
- ubyntu 链接mysql_ubuntu下mysql连接(转载)
- 【CV系列】颜色恒常性理论及应用
- win10下编译OpenCV的微信二维码库给Dotnet使用
- 从实战经验来看 究竟如何才能做出赚钱的量化投资策略?
- powerquery分组_使用Excel Power Query进行文本分组合并
- dpdk pktgen发包工具使用
热门文章
- C 实现 删除字符串空白符的函数 strtrim
- MATLAB —— 绘图
- elasticsearch mongodb mysql_Elasticsearch 与 Mongodb 数据同步问题
- 完善获取数据库数据的写法
- LeetCode 1663. 具有给定数值的最小字符串(贪心)
- LeetCode 346. 数据流中的移动平均值(队列)
- LintCode 563. 背包问题 V(DP)
- canvas 判断哪个元素被点击_监听 Canvas 内部元素点击事件的三种方法
- 11.MYSQL高级(一)
- hive - 自定义函数(超详细步骤,手把手的交)