visitor模式是什么:
引用:作用於某個物件群中各個物件的操作。 它可以使你在不改變這些物件本身的情況下,定義作用於這些物件的新操作。
引用:作用於某個物件群中各個物件的操作。 它可以使你在不改變這些物件本身的情況下,定義作用於這些物件的新操作。
在Java中,Visitor模式實際上是分離了collection結構中的元素和對這些元素進行操作的行爲。
很显然这是一个非常适合在XHTML解析出各个element进行显示处理时使用。把StAX的输出构建出简单的dom,然后这些dom就成为了前面所提的collection解构。draw操作就是visitor
public interface Painter{
drawxxx(...);
drawxxy(...);
drawxyy(...);
}
然后再定义visitable接口
public interface Drawable{
draw();
}
public class xxx implements Drawable {
draw(Painter painter ) {
painter.drawxxx();
}
}
然后再实现Painter,把每个element的绘出操作实现出来就OK了。
composite模式就更简单了,dom本身就是了。DOM下面的节点如果用强类型,那就是composite嘛
也就是那些element实现Drawable操作,element放进一个collection中,变成document。document就应用了composite模式。