J'ai mise en œuvre simple chaîne de modèle de conception de la responsabilité qui
traversant la chaîne du début à la fin de la chaîne, mais maintenant je veux faire
la chaîne commence à partir d'un certain point et se termine à un certain point.chaîne de mise en œuvre du modèle de conception de la responsabilité de commencer l'arrêt de la chaîne en différents points
Par exemple, voici une implémentation de modèle simple dans JAVA, ici je veux l'arrêt de la chaîne en B, quelle est la meilleure façon de l'implémenter?
public static void main(String[] args) {
PlanetHandler chain = setUpChain();
//Stop in B dont continue to C
chain.handleRequest(TypeEnum.B);
}
public enum TypeEnum {
A, B, C;
}
public abstract class Handler {
Handler successor;
public void setSuccessor(Handler successor) {
this.successor = successor;
}
public abstract void handleRequest(TypeEnum t);
}
public class A extends Handler {
public void handleRequest(TypeEnum t) {
if (successor != null) {
successor.handleRequest(request);
}
}
}
}
public class B extends Handler {
public void handleRequest(TypeEnum t) {
if (successor != null) {
successor.handleRequest(request);
}
}
}
}
public class C extends Handler {
public void handleRequest(TypeEnum t) {
if (successor != null) {
successor.handleRequest(request);
}
}
}
}
public static Handler setUpChain() {
Handler a = new A();
Handler b = new B();
Handler c = new C();
a.setSuccessor(b);
b.setSuccessor(c);
return a;
}
Ajouter le 'TyepEnum 'correspondant à chaque classe et Ajouter une condition qui va s'arrêter quand ils sont identiques? – Oleg