Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说前端面试:JS适配器模式与代理模式的区别,希望能够帮助你!!!。
作用不同
适配器模式:使不兼容的接口类可以一起使用。
代理模式:提供代理对象,并由它来控制原对象,是对原有对象功能的增强,隐藏真正的目标对象通信。
内部角色不同
一、适配器模式包含:
- Target(目标抽象类):目标抽象类定义客户所需接口,可以是一个抽象类或接口,也可以是具体类。
- Adapter(适配器类):适配器可以调用另一个接口,作为一个转换器,对Adaptee和Target进行适配,适配器类是适配器模式的核心,在对象适配器中,它通过继承Target并关联一个Adaptee对象使二者产生联系。
- Adaptee(适配者类):适配者即被适配的角色,它定义了一个已经存在的接口,这个接口需要适配,适配者类一般是一个具体类,包含了客户希望使用的业务方法,在某些情况下可能没有适配者类的源代码。
二、代理模式包含:
- Subject:(抽象主题类):该类的主要职责是声明真实主题与代理的共同接口方法,该类既可以是一个抽象类也可以是一个接口。
- RealSubject:(真实主题类):该类也称为被委托类或被代理类,该类定义了代理所表示的真实对象,由其执行具体的业务逻辑方法,而客户类则通过代理类间接地调用真实主题中定义的方法。
- ProxySubject(代理类):该类也称为委托类或代理类,该类持有一个对真实主题类的引用,在其所实现的接口方法中调用真实主题类中相应的接口方法执行,以此起到代理的作用。
- Client:(客户类):即使用代理类的类型。
适配器模式改变原对象的接口,而代理模式不改变所代理类的接口
今天的分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。