简单地说,适配器模式就是 将一个类的接口,转换成客户需要的口味。
[color=green]一个接口--->另一个接口-----以符合客户。[/color]
适配器模式的类图(见底):
[img]C:\Documents and Settings\rudy\桌面\Main.jpg[/img]
这里描述由 枚举适配到迭代器。
当然,这里枚举这个类就是adaptee被适配者,而目标接口为iterator,需要设计一个适配器,讲现有的枚举类转变为我们现在所使用的Iterator接口。
其类图如下
下面为适配器代码
[color=red] 总结下适配器的实现:1.实现要适配后的目标接口;
2.需要有个被适配者的引用(组合) ,以通过调用被适配者的接口 对外接口来实现目标接口。[/color]
[color=blue] 画类图时碰到的一个问题:用starUM画类图时,实现接口的线应该为有箭头的虚线的,可是实际上现实出来的却是一条实线,所有在这里就用了继承的 带箭头的实线。大家有没有碰到类似的问题呢?待解决...
[/color]
[color=green]一个接口--->另一个接口-----以符合客户。[/color]
适配器模式的类图(见底):
[img]C:\Documents and Settings\rudy\桌面\Main.jpg[/img]
这里描述由 枚举适配到迭代器。
当然,这里枚举这个类就是adaptee被适配者,而目标接口为iterator,需要设计一个适配器,讲现有的枚举类转变为我们现在所使用的Iterator接口。
其类图如下
下面为适配器代码
public class EmToIterator implement Iterator{
private Enumeration e ; //has a Enumeration object
public EmTorIterator(){
this.e = new Enumeration() ;
}
public boolean hasnext(){
e.hasMoreElement() ;
}
public Object next(){
e.nextElement() ;
}
public void remove(){
//为实现
}
}
[color=red] 总结下适配器的实现:1.实现要适配后的目标接口;
2.需要有个被适配者的引用(组合) ,以通过调用被适配者的接口 对外接口来实现目标接口。[/color]
[color=blue] 画类图时碰到的一个问题:用starUM画类图时,实现接口的线应该为有箭头的虚线的,可是实际上现实出来的却是一条实线,所有在这里就用了继承的 带箭头的实线。大家有没有碰到类似的问题呢?待解决...
[/color]