|
Thursday, 20 January 2005 21:29 |
Avoid coupling the sender of a request to its receiver by giving more than one object a chance to handle the request. Chain the receiving objects and pass the request along the chain until an object handles it.

Source code/**
* Handles request it is responsible to.
*/
public class ConcreteHandler extends Handler {
/**
* Handle request or delegate it.
*/
public void handleRequest() {
boolean canProcessThisRequest = false; if (canProcessThisRequest) {
// handle request if possible
} else {
// pass it to the next in chain
super.handleRequest(); }
}
}
/**
* Defines interface for request handling
* @role __Handler
*/
public class Handler {
private Handler successor; /** Default request handling */
public void handleRequest() {
if (successor != null) {
successor.handleRequest(); }
}
public Handler getSuccessor() {
return this.successor; }
public void setSuccessor(Handler successor) {
this.successor = successor; }
}
|
|
Last Updated on Friday, 17 June 2005 23:38 |