面试题2:你说一下什么是设计模式
===============================================================================
设计模式(Design pattern) 是解决软件开发某些特定问题而提出的一些解决方案也可以理解成解决问题的一些思路。通过设计模式可以帮助我们增强代码的。我们使用设计模式最终的目的是实现代码的 和。
追问1:那你怎么理解高内聚和低耦合/p>
耦合:
也称块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。。
内聚:
故名思议,表示内部间聚集、关联的程度,那么高内聚就是指要高度的聚集和关联。内聚是从,一个好的内聚模块应当恰好做一件事。它描述的是模块内的功能联系。
,是软件工程中的概念,是判断软件设计好坏的标准,主要用于程序的面向对象的设计,主要看类的。目的是使程序模块的可重用性、移植性大大增强。通常程序结构中各模块的内聚程度越高,模块间的耦合程度就越低。
面试者老王:/p>
面试者老王:那我比较了解工厂、单例、代理和适配器模式。
追问2:那你说说适配器模式的原理吧
二狗不知道在哪听说华为手机就是牛,非要新买了一个华为手机,它高高兴兴的拿到新手机,想要插上耳机听歌,但发现手机没有通用的原型耳机孔,仔细看了说明书之后发现,华为手机是充电孔耳机孔在一起,在插耳机时需要一个耳机口转接器,才能插耳机。我们用程序员的眼观来看,这里相当于增加了一个转接器类用于适配耳机,这就类似于设计模式 —— 。
适配器模式包装目标类即适配者(Adaptee)成适配器。适配器提供客户端所需要的接口,把客户端的请求转化成对适配者的调用。也就是说,客户端访问适配器时,在适配器内部将调用适配者的方法。
适配器模式的实现有以下几种:
-
:适配器类会实现接口,在实现过程中调用待适配的类中的方法
-
:在适配器类中实现接口中定义的新方法,通常来说,适配器类中既可以通过借助继承类中的方法实现高层功能,也可以实现接口中定义的新方法,进行功能扩展。
-
:即对接口的缺省实现,即接口适配器模式。
此外,在适配过程中,可能接口功能的实现需要多个待适配类中的方法交互才能满足需求,即同时适配多个类
。适配实现的复杂度取决于。
在实际项目过程中,通常会存在两个版本共存的情况,这就是需要使用到双向适配器。
两个版本的实现代码:
public interface Targetable1 {
public void produce1();
}
public class Target1 implements Targetable1 {
@Override
public void produce1() {
System.out.println(“Targetable1的produce1实现”);
}
}
public interface Targetable2 {
public void produce2();
}
public class Target2 implements Targetable2 {
@Override
public void produce2() {
System.out.println(“Targetable2的produce2实现”);
}
}
适配器类的代码如下:
public class Adapter implements Targetable1, Targetable2 {
private Targetable1 target1;
private Targetable2 target2;
@Override
public void produce1() {
target1.produce1();
}
@Override
public void produce2() {
target2.produce2();
}
}
文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览92487 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!