Die Chain of Command ist ein Verhaltensmuster, bei dem eine Anforderung entlang einer Kette von Verarbeitungsobjekten weitergereicht wird.
interface Handler {
void setNext(Handler next);
void handleRequest(String request);
}
class ConcreteHandlerA implements Handler {
private Handler next;
public void setNext(Handler next) {
this.next = next;
}
public void handleRequest(String request) {
if ("A".equals(request)) {
// Verarbeite die Anforderung
} else if (next != null) {
.handleRequest(request);
next}
}
}
Das Builder Pattern dient zur Erzeugung komplexer Objekte und ist besonders nützlich, wenn ein Objekt zahlreiche Konfigurationsmöglichkeiten hat.
class Product {
private String partA;
private String partB;
static class Builder {
private String partA;
private String partB;
setPartA(String partA) {
Builder this.partA = partA;
return this;
}
setPartB(String partB) {
Builder this.partB = partB;
return this;
}
build() {
Product = new Product();
Product product .partA = this.partA;
product.partB = this.partB;
productreturn product;
}
}
}
Die Chain of Command kann mit dem Builder Pattern kombiniert werden, um die Konfiguration der Handler-Kette zu vereinfachen.
class HandlerChainBuilder {
private Handler head;
private Handler tail;
addHandler(Handler handler) {
HandlerChainBuilder if (head == null) {
= handler;
head = handler;
tail } else {
.setNext(handler);
tail= handler;
tail }
return this;
}
Handler build() {
return head;
}
}
public static void main(String[] args) {
= new HandlerChainBuilder();
HandlerChainBuilder builder .addHandler(new ConcreteHandlerA()).addHandler(new ConcreteHandlerB());
builderHandler chain = builder.build();
.handleRequest("A");
chain}
Mit dem Builder Pattern können Sie eine komplexe Chain of Command erstellen und konfigurieren, wodurch der Code lesbarer und wartbarer wird. Durch die Kombination dieser Muster können Sie sowohl die Erstellung als auch die Verarbeitung von Anforderungen effizient gestalten.