作者 内容
 wwh0058   各位大侠,帮帮忙

各位大侠,帮帮忙
adaper模式中所说的插入式adaper到底是什么意思啊?我实在是笨,看不懂,
还有,在那里能下载原版<设计模式>?
 01/09/05 13:52 酷帖!    臭帖!    回复  
酷帖评价:           臭帖评价:
返回页首
 wwh0058   有没有人能帮忙啊

各位大侠,帮帮忙
adaper模式中所说的插入式adaper到底是什么意思啊?我实在是笨,看不懂,
还有,在那里能下载原版<设计模式>?
 01/09/05 16:36 酷帖!    臭帖!    回复  
酷帖评价:           臭帖评价:
返回页首
 potian  回复: 有没有人能帮忙啊

设计模式一文中的例子,使用抽象接口或者代理对象都是为了adapt到不同的接口,他们的目的都是为了当你所adapt的树型结构是不同类的时候通过这样的机制可插入地adapt.
这里的核心是TreeDisplay同时要作为一个客户使用,所以他才会对它显示的结构有所要求,一旦实现了可插入的ADAPTER,那么TreeDisplay就显示你提供任何一种树形结构的东西。
TreeDisplay本身对他所显示的东西有一个要求,譬如说是Tree接口,但是你现在的FileSystementity却没有这样一个接口。
这时候的办法就是定义一个TreeAccessorDelete接口,让你可以使用它作为Target,从而进行adapt.如果你有其他的LDAPDirectory,那么你也只需要提供一个在TreeAccessorDelete和LDAPDirectory的adpter即可。
所以,这里的方法也就是接口匹配,客户已经存在,它显示的内部结构(Tree)如果固定的话,那么对就很难使用TreeDisplay来显示不同的结构,但是,如果你定义了一个窄接口,让其他同样已经存在的adaptee适配到这个接口,那么就是可插入了。
 01/09/06 14:29 酷帖!    臭帖!    回复  
酷帖评价:           臭帖评价:
返回页首
 wwh0058   果然是大侠、高手,送你一朵花

我大概明白了一些“可插入”的意思了。谢谢!

对于“使用抽象操作”与“使用代理对象”,我想说一说,
我更欣赏“使用代理对象”的方式,

我觉得“使用抽象操作”只是一种折中的方式:系统的类已经创建好不能再修改了(接口已经固定),没有办法修改TreeDisPlay(client,target),因此假设有一个“窄接口”的存在,通过生成TreeDisPlay的子类(adapter)来实现“窄接口”,并适配adaptee.

“使用代理对象“是确实存在此“窄接口”,TreeDisPlay是client,"窄接口”(实例)是target."窄接口”的子类是adapter.

"参数化适配器"我还是不明白。
 01/09/06 17:00 酷帖!    臭帖!    回复  
酷帖评价:           臭帖评价:
返回页首