好像是一回事:适配器和代理模式
1、适配器模式。
“适配器”,顾名思义,就是将一个类的接口转换成另外一个接口,使得原本由于接口不兼容不能一起工作的那些类一起工作。在软件开发中,系统的数据和行为都正确,但接口不符时,我们应该考虑适配器。举例来说,我们高中都学习过中文版的《论语》(里的几段著名的话),假如现在到了大学后,英语老师要我们学英文版的《论语》,以前学中文版的时候是看中文书,现在学英文版的,当然要看英文书(注意这里的英文书是实实在在存在了的),所不变的就是继续听“子曾经曰过”什么什么了。好了,Code is cheap.让代码说话:
2、代理模式。
代理就是真实对象的代表。”代理模式“为其他对象提供一种代理以控制对这个对象的访问。代理模式其实就是在访问对象时引入一定程度的间接性,因为这种间接性,可以附加多种用途。
举例来说,我们高中都学习过中文版的《论语》(里的几段著名的话),现在到了大学后,我们求知欲望强烈^_^,很想学习英文版的《论语》,以前学中文版的时候是看中文书,现在学英文版的,当然要看英文书,可是国内没有质量过关的英文版《论语》(或者不权威,我们自己也可以翻译出来^_^)。这时候国外有汉学专家翻译了《论语》,可是版权控制的很严格,我们直接买不到,这个时候有一个出版社被授权在国内出版这本书,这样我们就可以看到原滋原味的外国人翻的《论语》了。现在就来看看英文的“子曾经曰过”什么什么了。上代码:
“适配器”,顾名思义,就是将一个类的接口转换成另外一个接口,使得原本由于接口不兼容不能一起工作的那些类一起工作。在软件开发中,系统的数据和行为都正确,但接口不符时,我们应该考虑适配器。举例来说,我们高中都学习过中文版的《论语》(里的几段著名的话),假如现在到了大学后,英语老师要我们学英文版的《论语》,以前学中文版的时候是看中文书,现在学英文版的,当然要看英文书(注意这里的英文书是实实在在存在了的),所不变的就是继续听“子曾经曰过”什么什么了。好了,Code is cheap.让代码说话:
Code
适配器模式的使用通常都在软件开发后期或者维护阶段,因为没有哪个开发团队在开发初期愿意把类似的功能类的接口设计的不同,通常都是会先考虑通过重构统一接口。所以这个模式在开发初期应尽量避免使用。2、代理模式。
代理就是真实对象的代表。”代理模式“为其他对象提供一种代理以控制对这个对象的访问。代理模式其实就是在访问对象时引入一定程度的间接性,因为这种间接性,可以附加多种用途。
举例来说,我们高中都学习过中文版的《论语》(里的几段著名的话),现在到了大学后,我们求知欲望强烈^_^,很想学习英文版的《论语》,以前学中文版的时候是看中文书,现在学英文版的,当然要看英文书,可是国内没有质量过关的英文版《论语》(或者不权威,我们自己也可以翻译出来^_^)。这时候国外有汉学专家翻译了《论语》,可是版权控制的很严格,我们直接买不到,这个时候有一个出版社被授权在国内出版这本书,这样我们就可以看到原滋原味的外国人翻的《论语》了。现在就来看看英文的“子曾经曰过”什么什么了。上代码:
Code
上面代码中的Proxy和本例中(现实中)的出版社的用途还是有很大的区别的,这里只是举个例子,不妥之处望留意。
作者:Jeff Wong
出处:http://jeffwongishandsome.cnblogs.com/
本文版权归作者和博客园共有,欢迎围观转载。转载时请您务必在文章明显位置给出原文链接,谢谢您的合作。