据我所知,适配器和代理模式使两个不同/不同的类/对象与每个类型/对象兼容以进行通信。它们都是结构模式。我知道他们两个都非常相似。
有人可以解释究竟是什么让他们与众不同?
编辑: 我经历了this个问题。但我更愿意在Adapter和Proxy之间进行仔细比较。
答案 0 :(得分:10)
<强> 适配器: 强>
UML图:
您可以通过此SE帖子中的工作代码示例找到有关此模式的更多详细信息:
Difference between Bridge pattern and Adapter pattern
<强> 代理: 强>
代理为另一个对象提供代理或占位符,以控制对它的访问。
UML图:
常见的情况是代理模式适用。
有关正常工作的代码,请查看有关代理的tutorialspoint文章。
主要差异:
答案 1 :(得分:2)
来自here:
适配器为其主题提供不同的界面。代理提供相同的接口。
您可能会认为适配器应该使一件事适合另一件不兼容的东西,如果直接连接的话。例如,当您出国旅行时,需要一个电源插座适配器。
现在,Proxy是同一个接口的对象,可能是相同的基类(或子类)。它只会假装&#34;是(并且表现得像)实际的对象,而是将实际行为(计算,处理,数据访问等)转发给底层的引用对象。
根据电气类比推断,客户可以看到适配器的使用 - 也就是说,客户&#34;知道&#34;正在使用适配器 - 虽然代理的使用可能更常被隐藏,或者“透明”#34; - 客户端认为正在使用实际对象,但它只是代理。
答案 2 :(得分:0)
适配器模式和代理模式之间的区别
ADAPTER PATTERN
PROXY PATTERN
了解代码
class client{
public void main(){
//proxy pattern
IServer iserver = new proxy();
iserver.invoke();
//adapter pattern
IAdapter iadapter = new adapter();
iserver.iadapter();
}
}
class server implements IServer{
public void invoke(){}
}
class proxy implments IServer{
public void invoke(){}
}
class adapter implements IAdapter{
public void invoke(){}
}