首先有个PriorityNode
{
基本权限逻辑
有个接受的访问者
public void accept(Visitor visitor){
visitor.visit(this);
}
}
提供访问者接口
public interface Visitor {
/**
* 访问权限树节点
* @param node
*/
void visit(PriorityNode node);
}
PriorityNodeRelateCheckVisitor
这个类是个检查的类,检查权限是否存在,如果存在或者不能删除就返回false
visit方法 ,将节点的数据查询出来,然后克隆,调用访问者
下面就去校验权限,如果权限存在就返回fasle、
if(relateCheck(node)){}
//这个方法就会校验的
relateCheck(Node){}
删除的访问者和上面的类似,把校验逻辑换成删除数据库