一个权限删除的功能:通过的是组合+访问者的模式

一个权限删除的功能:通过的是组合+访问者的模式

首先有个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){}

删除的访问者和上面的类似,把校验逻辑换成删除数据库

 

 

 

原文地址:https://www.cnblogs.com/q1359720840/p/14800563.html