定义:
使多个对象都有机会处理请求,从而避免了请求的发送者和接受者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有对象处理它为止。
优点:
将请求者和处理者分开,两者解耦,提供系统灵活性。
角色:
1、抽象处理者(Handle):定义一个处理请求的接口。如果需要可以定义出一个方法以设定和返回
对下家的引用。这个角色通常由一个Java抽象类或者Java接口实现。
图中的聚合关系给出了具体子类对下家的引用,抽象方法handleRequest()规范了子类处理请求的操作。
2、具体处理者(ConcreteHandler)角色:具体处理者接到请求后,可以选择请求处理掉,或者将请求传给下家
。由具体处理者持有对下家的引用,因此,如果需要,具体处理者可以访问下家。
上图中的示意性的具体处理者ConcreteHandler类只有handleRequestÿ