我在看代理模式,对我而言,它似乎很像装饰器,适配器和桥模式.我误会了什么吗?有什么不同?为什么我会使用Proxy模式而不是其他模式?你过去在现实世界的项目中如何使用它们?
Facade,Proxy,Adapter和Decorator设计模式有什么区别?
我从来没有读过明确的解释,你的是什么?
我正在研究我的设计模式,我在编码中尚未认真使用的一种模式是装饰模式.
我理解这种模式,但我想知道的是现实世界中一些具体的例子,装饰者模式是最佳/最佳/优雅的解决方案.需要装饰器模式的特定情况非常方便.
谢谢.
据我所知,适配器和代理模式使两个不同/不同的类/对象与每个相互兼容以进行通信.它们都是结构模式.我发现他们两个都非常相似.
有人可以解释究竟是什么让他们与众不同?
编辑:我经历了这个问题.但我更愿意在Adapter和Proxy之间进行密切的比较.
oop design-patterns adapter object-oriented-analysis proxy-pattern
代理模式在进行了一些其他处理(例如应用检查是否需要处理请求还是基于某些凭据检查)之后,将请求委托给Real主题。
它的类图如下
代理类直接引用了具体的Subject。
装饰器模式丰富了组件的行为(像代理一样,它也进行一些附加处理并将操作委托给实际组件)。此模式的类图类似于Proxy模式,唯一的区别是它具有对组件接口的引用。
在Proxy类中拥有具体的实际主题会使单元测试变得困难,因为类仅应依赖于接口而不是依赖于实现。我的问题是,如果代理模式也引用了Real主体公开的接口,那么它将等同于Decorator模式。在这种情况下,代理模式的类图也将如下所示
decorator ×4
adapter ×2
oop ×2
aggregation ×1
associations ×1
bridge ×1
composition ×1
facade ×1
java ×1
proxy ×1
uml ×1