Java岗大厂面试百日冲刺 – 日积月累,每日三题【Day30】—— 设计模式1

大家好,我是陈哈哈,北漂五年。相信大家和我一样,,作为一名资深Java选手,深知面试重要性,接下来我准备用100天时间,基于Java岗面试中的高频面试题,以的形式,带你过一遍热门面试题及恰如其分的解答。

一路走来,随着问题加深,发现不会的也愈来愈多。但底气着实足了不少,相信不少朋友和我一样,日积月累才是最有效的学习方式!想起高三时一个同学的座右铭:共勉(juan)。
Day30了,真快!

课间休息,又来秀一下来自咱们群里同学的搬砖工地的小火锅~坐标:重庆


面试题2:你说一下什么是设计模式

设计模式(Design pattern) 是解决软件开发某些特定问题而提出的一些解决方案也可以理解成解决问题的一些思路。通过设计模式可以帮助我们增强代码的。我们使用设计模式最终的目的是实现代码的 和。

追问1:那你怎么理解高内聚和低耦合/h2>

耦合

也称块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。。

内聚

故名思议,表示内部间聚集、关联的程度,那么高内聚就是指要高度的聚集和关联。内聚是从,一个好的内聚模块应当恰好做一件事。它描述的是模块内的功能联系。

,是软件工程中的概念,是判断软件设计好坏的标准,主要用于程序的面向对象的设计,主要看类的。目的是使程序模块的可重用性、移植性大大增强。通常程序结构中各模块的内聚程度越高,模块间的耦合程度就越低。


面试者老王:/p>

面试者老王:那我比较了解工厂、单例、代理和适配器模式。

追问2:那你说说适配器模式的原理吧

二狗不知道在哪听说华为手机就是牛,非要新买了一个华为手机,它高高兴兴的拿到新手机,想要插上耳机听歌,但发现手机没有通用的原型耳机孔,仔细看了说明书之后发现,华为手机是充电孔耳机孔在一起,在插耳机时需要一个耳机口转接器,才能插耳机。我们用程序员的眼观来看,这里相当于增加了一个转接器类用于适配耳机,这就类似于设计模式 —— 。

适配器模式包装目标类即适配者(Adaptee)成适配器。适配器提供客户端所需要的接口,把客户端的请求转化成对适配者的调用。也就是说,客户端访问适配器时,在适配器内部将调用适配者的方法。

适配器模式的实现有以下几种:

  1. :适配器类会实现接口,在实现过程中调用待适配的类中的方法
  2. :在适配器类中实现接口中定义的新方法,通常来说,适配器类中既可以通过借助继承类中的方法实现高层功能,也可以实现接口中定义的新方法,进行功能扩展。
  3. :即对接口的缺省实现,即接口适配器模式。

此外,在适配过程中,可能接口功能的实现需要多个待适配类中的方法交互才能满足需求,即同时适配多个类。适配实现的复杂度取决于。

在实际项目过程中,通常会存在两个版本共存的情况,这就是需要使用到双向适配器。

两个版本的实现代码:

适配器类的代码如下:

实际上,在使用适配器过程中存在一个问题:被适配的对象不兼容Adapter适配器类,这使得适配器类的适用范围受到限制。而双向适配器则解决了这样的问题,可以满足不同客户采用不同方式查看同一不同对象的需求。

适配器模式优缺点

优点:

  • 更好的复用性。适配器模式可复用已实现接口的兼容。
  • 更好的扩展性。实现适配器的过程中可以调用自己开发的功能,实现系统的扩展。

缺点:

过多使用适配器,系统会比较混乱,不易理解。

每日小结

今天我们复习了面试中常考的相关的三个问题,你做到心中有数了么了,今天就到这里,学废了的同学,,给同学们以激励。

文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览92123 人正在系统学习中

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年6月25日
下一篇 2021年6月25日

相关推荐