/*
* 责任链(Chain of Responsibility)
*
*
* 多个处理器对象连成一串,请求在这条链上传递,由该处理这个请求的处理器来处理。发出请求的客户端并不知道哪个对象处理请求。
*/
package model;
public class TestChain {
public static void main(String[] args) {
String pass1 = "123456";
String pass2 = "123456";
String personId = "123456789012345678";
String email = "huxz@tarena.com.cn";
register(pass1, pass2, personId, email);
}
public static void register(String pass1, String pass2, String personId,
String email) {
Filter f1 = new PasswordFilter1();
Filter f2 = new PasswordFilter2();
Filter f3 = new PersonIdFilter();
Filter f4 = new EmailFilter();
f1.setNext(f2);
f2.setNext(f3);
f3.setNext(f4);
System.out.println(f1.doFilter(pass1, pass2, personId, email));
}
}
abstract class Filter {
Filter next = null;
public Filter getNext() {
return next;
}
public void setNext(Filter next) {
this.next = next;
}
public String doFilter(String pass1, String pass2, String personId,
String email) {
if (next == null)
return "成功";
else
return next.doFilter(pass1, pass2, personId, email);
}
}
class PasswordFilter1 extends Filter {
public String doFilter(String pass1, String pass2, String personId,
String email) {
if (!(pass1.equals(pass2)))
return "两次密码输入不一致";
else
return super.doFilter(pass1, pass2, personId, email);
}
}
class PasswordFilter2 extends Filter {
public String doFilter(String pass1, String pass2, String personId,
String email) {
if (pass1.length() != 6)
return "密码长度必须为6";
else
return super.doFilter(pass1, pass2, personId, email);
}
}
class PersonIdFilter extends Filter {
public String doFilter(String pass1, String pass2, String personId,
String email) {
if (personId.length() != 15 && personId.length() != 18)
return "身份证号码非法";
else
return super.doFilter(pass1, pass2, personId, email);
}
}
class EmailFilter extends Filter {
public String doFilter(String pass1, String pass2, String personId,
String email) {
int i1 = email.indexOf("@");
int i2 = email.indexOf(".");
if (i1 == -1 || i2 == -1 || i2 - i1 <= 1 || i1 == 0
|| i2 == email.length() - 1)
return "email非法";
else
return super.doFilter(pass1, pass2, personId, email);
}
}
分享到:
相关推荐
责任链模式(Chain of Responsibility)是一种行为设计模式,它允许将请求沿着处理者对象的链进行传递,直到某个对象能够处理这个请求。这种模式的主要优点是解耦了发送者和接收者之间的关系,使得系统更加灵活,...
**Java设计模式——责任链(Chain of Responsibility)** 在软件工程中,设计模式是一种解决常见问题的可重用解决方案。责任链模式是行为设计模式之一,它的主要思想是将请求的发送者和接收者解耦,通过将多个处理...
责任链模式(Chain of Responsibility Pattern)是一种行为型设计模式,它允许将请求的发送者和接收者解耦。通过将请求沿着处理链传递,直到有对象处理该请求为止,这种模式避免了请求发送者与具体处理者之间的紧...
责任链(Chain of Responsibility)模式是一种行为设计模式,它允许我们向对象链中传递请求,让每个对象决定是否处理这个请求。在Java中,这种模式常用于事件处理、日志系统或者权限控制等场景,其核心思想是将处理...
Chain of Responsibility模式是GOF(GoF,Gang of Four)在他们的经典著作《设计模式:可复用面向对象软件的基础》中提出的23种设计模式之一,属于行为模式类别。这个模式的主要目的是允许在对象之间传递请求,同时...
C#面向对象设计模式 Chain of Responsibility 职责链模式 视频讲座下载
C#面向对象设计模式 (行为型模式) Chain Of Responsibility 职责链模式 视频讲座下载
Chain of Responsibility(责任链)模式是一种行为设计模式,它允许将请求沿着处理者对象的链进行发送,每个对象都可以处理请求或将其传递给链中的下一个对象。这种模式常用于事件处理或者命令的执行流程,使得多个...
NULL 博文链接:https://linkcqu.iteye.com/blog/355806
责任链模式是一种行为设计模式,它允许我们向多个对象中的一个发送请求,而无需知道哪个对象会处理这个请求。在责任链模式中,接收者和发送者之间没有直接的耦合,请求会在一系列对象(链)中传递,直到某个对象处理...
在 Java 开发中,责任链模式是一种重要的行为设计模式,它可以解耦请求的发送者和接收者,使多个对象都有机会处理请求。本文将详细介绍责任链模式的意图、解释、编程示例、适用场景、实际应用、优点和权衡。同时,还...
本篇将探讨两种重要的行为设计模式:责任链模式(Chain of Responsibility Pattern)和状态模式(State Pattern)。 **责任链模式**是一种使多个对象都有机会处理请求的模式,避免请求发送者与接收者之间的耦合。在...
职责链模式(Chain of Responsibility)是一种行为型设计模式,它允许将请求沿着处理者对象的链进行传递,直到某个对象能够处理这个请求。在C#中,职责链模式的应用可以帮助我们构建灵活、可扩展的系统,减少对象...
责任链模式(Chain of Responsibility,CoR)是一种行为设计模式,它允许将请求沿着处理者对象的链式结构进行传递,直到某个对象处理这个请求。每个处理者对象都包含对下一个处理者的引用,如果当前处理者无法处理...
职责链模式(Chain of Responsibility)是一种行为型设计模式,它允许你将请求沿着处理者对象的链进行传递,直到某个对象处理该请求。在C#编程中,职责链模式能够帮助我们实现一种松耦合的架构,使得请求的发送者和...
责任链模式(Chain of Responsibility)是一种行为设计模式,它允许将请求沿着处理者对象的链进行传递,直到某个对象能够处理这个请求为止。在Java中,我们可以通过接口和类的组合来实现这种模式。让我们深入探讨...
### C#面向对象设计模式纵横谈(14):Chain of Responsibility 职责链模式(行为型模式) #### 概述 在本篇文章中,我们将深入探讨C#中的Chain of Responsibility(职责链)模式,这是行为型设计模式的一种。虽然标题...
职责链模式(Chain of Responsibility Pattern)是一种行为设计模式,它允许将请求的发送者和接收者解耦,使得多个对象都有可能处理一个请求,而无需显式指定接收者。在这个模式中,请求沿着一个处理者链进行传递,...
创建模式: ...设计模式之Chain of Responsibility(职责链) 设计模式之Command 设计模式之State 设计模式之Strategy(策略) 设计模式之Mediator(中介者) 设计模式之Interpreter(解释器) 设计模式之Visitor