据我所知,适配器和代理模式使两个不同/不同的类/对象与每个通信兼容。并且它们都是结构模式。我觉得他们两个都很相似。适配器和代理模式之间的确切区别是什么?
有人可以解释究竟是什么使他们不同吗?编号: 我经历了this的问题。但我宁愿在适配器和代理之间进行仔细的比较。
据我所知,适配器和代理模式使两个不同/不同的类/对象与每个通信兼容。并且它们都是结构模式。我觉得他们两个都很相似。适配器和代理模式之间的确切区别是什么?
有人可以解释究竟是什么使他们不同吗?编号: 我经历了this的问题。但我宁愿在适配器和代理之间进行仔细的比较。
适配器:
UML图:
您可以找到有关这种模式有工作的代码示例在这个SE发布更多细节:
Difference between Bridge pattern and Adapter pattern
代理:
代理为另一个对象提供代理或占位符来控制对其的访问。
UML图:
存在其中代理模式是适用的常见情况。
有关工作代码,请参阅代理上的tutorialspoint文章。
主要差异:
您可以在proxy和adapter文章sourcemaking文章中找到有关这些模式的更多细节的接口。
其它有用的制品:proxy由dzone
非常感谢您为改善您的答案努力再次:) –
我完成了我的编辑:) –
从here:
适配器提供不同的接口到其主题。代理提供相同的界面。
如果直接连接,您可能会认为适配器是适合另一个不兼容的东西。例如,您出国旅行时需要电源插座适配器。
现在,代理服务器是相同接口的对象,并且可能是相同的基类(或子类)。它只是“假装”成为(并且表现得像)实际的对象,而是将实际行为(计算,处理,数据访问等)转发给基础的被引用对象。
推断到电的类比,适配器的使用对客户端是可见的 - 也就是说,客户端“知道”正在使用适配器 - 而代理服务器的使用可能更常见隐藏的或“透明的” - 客户端认为正在使用实际的对象,但它只是一个代理。
适配器模式与代理模式
适配器模式
代理模式
认识经历CODE
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(){}
}
参考文献:[?如何做代理,装饰,适配器,和桥模式不同] Difference between Adapter pattern and Proxy Pattern
的可能的复制(HTTP://计算器。 com/questions/350404/how-do-the-proxy-decorator-adaptor-and-bridge-patterns-different) –
@michael_j_ward我已经经历过了,但我宁愿需要对这两者进行仔细比较。 。 –