public static class Processor1 implements Processor { @Override public Email handleEmail(Email email, int nextpos, ArrayList<Processor> processors) { //当前处理器可以继续将email交给下一个环扣 等待下一个环扣的反馈,也可以选择拦截处理结果 // 在这个处理器中,处理器选择优先处理,处理完成后再交接给下一个链条结 email.result = email.result + " 添加重要性标签" ; EmailChain next = new EmailChain(nextpos, email, processors); email = next.proceed(email); return email; } } public static class Processor2 implements Processor { @Override public Email handleEmail(Email email, int nextpos, ArrayList<Processor> processors) { //当前处理器可以继续将email交给下一个环扣 等待下一个环扣的反馈,也可以选择拦截处理结果 // 在这个处理器中,处理器选择将处理权限优先交给下一个链条结处理,等待返回后自己再处理 EmailChain next = new EmailChain(nextpos, email, processors); email = next.proceed(email); email.result = email.result + " 移入指定文件夹" ; return email; } } public static class Processor3 implements Processor { @Override public Email handleEmail(Email email, int nextpos, ArrayList<Processor> processors) { //当前处理器可以继续将email交给下一个环扣 等待下一个环扣的反馈,也可以选择拦截处理结果 // 在这个处理器中,处理器选择优先处理,处理完成后再交接给下一个链条结 email.result = email.result + " 添加提醒" ; EmailChain next = new EmailChain(nextpos, email, processors); email = next.proceed(email); return email; } } |