永发信息网

设计模式:适配器模式和代理模式的区别

答案:2  悬赏:80  手机版
解决时间 2021-02-16 01:03
  • 提问者网友:情歌越听越心酸
  • 2021-02-15 05:35
设计模式:适配器模式和代理模式的区别
最佳答案
  • 五星知识达人网友:西岸风
  • 2021-02-15 06:28
设计模式不针对某种特定语言,对C#/java/c++来说都一样
  代理模式主要用在真实的类代价昂贵的地方,比如支付宝如果说要测试购买,如果说他们的测试人员真的要购买下单然后收货,恐怕费用很高,所以就可以弄一些假的卖家,假的快递员等类,也就是代理类
  适配器模式主要是用在现有类的接口与需要的不一致,比如说你手机充电的接口是圆的,而现在手头只有一根接口为扁形的充电器,那就没法使用,得使用一个适配器,输入为扁形,输出为圆形
全部回答
  • 1楼网友:迟山
  • 2021-02-15 07:39
这是之前我的博客总结的: proxy,代理模式:为其他对象提供一种代理以控制对这个对象的访问。  例如:经典的体现在spring aop切面中,spring中利用了俩种代理类型。  其实,代理也分为静态和动态,但是我们一般常用动态,因为静态代理秀不起来 adapter,适配器模式:将一类的接口转换成客户希望的另外一个接口,adapter模式使得原本由于接口不兼容而不能一起工作那些类可以一起工作。 其中对象的适配器模式是各种结构型模式的起源,分为三种:类,对象,接口的适配器模式。 结一下三种适配器模式的应用场景: 类的适配器模式:当希望将一个类转换成满足另一个新接口的类时,可以使用类的适配器模式,创建一个新类,继承原有的类,实现新的接口即可。 对象的适配器模式:当希望将一个对象转换成满足另一个新接口的对象时,可以创建一个wrapper类,持有原类的一个实例,在wrapper类的方法中,调用实例的方法就行。 接口的适配器模式:当不希望实现一个接口中所有的方法时,可以创建一个抽象类wrapper,实现所有方法,我们写别的类的时候,继承抽象类即可。 区别:很明显,适配器模式是因为新旧接口不一致导致出现了客户端无法得到满足的问题,但是,由于旧的接口是不能被完全重构掉的,因为我们还想使用实现了这个接口的一些服务。那么为了使用以前实现旧接口的服务,我们就应该把新的接口转换成旧接口。相比于适配器的应用场景,代理就不一样了,虽然代理也同样是增加了一层,但是,代理提供的接口和原本的接口是一样的,代理模式的作用是不把实现直接暴露给client,而是通过代理这个层,代理能够做一些处理。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯