//下面类层次结构中,分离了控件的行为和样式的实现,在样式多变的情况下,使得样式的变动不会引起修改其它代码
//增强了代码灵活性和可维护性
function cnode(){}//基本的节点数据结构,可用于menu,tree等多种场合
function ctreenode(){//对treenode的行为提供支持
//property
this.render=null;//abstract
this.base=cnode;
this.cnode();//继承
}
function cabstracttreectrl(){//实现tree的行为
this.root=new ctreenode();//结点
this.render=null;//暂时不实现
}
//上面代码都与样式及浏览器无关
function ctreerender()={//定义样式
//property
this.rendertreenode=function(treenode){};
this.rendertreecrl=function(treectrl){};
}
function ctreectrl(){
//property
this.render=new ctreerender();//render实例
this.base=cabstracttreectrl;
this.cabstracttreectrl();//继承
this.updatedisplay=function(){
//do render
}
}