Chain of Responsibility パターンを直感的に感じたい。それを得るには、実際の例について学ぶのが良い方法だと思います。そのような例を共有できますか?
このパターンに関することの 1 つは、チェーンに多数のステージ (10 を超えるステージなど) がある場合、実装が非常に醜くなることです。あなたたちはそれについて何をしますか?
Chain of Responsibility パターンを直感的に感じたい。それを得るには、実際の例について学ぶのが良い方法だと思います。そのような例を共有できますか?
このパターンに関することの 1 つは、チェーンに多数のステージ (10 を超えるステージなど) がある場合、実装が非常に醜くなることです。あなたたちはそれについて何をしますか?
サーブレット フィルターが良い例だと思います。チェーンはあなたのために構築されており、次のチェーンを呼び出すことができます。ただし、建設/配線はここで行われます。
10 が毛むくじゃらの場合は、ビルダーで単純化できます。
interface ChainElement {
void setNext(ChainElement next);
void doSomething();
}
class ChainBuilder {
private ChainElement first;
private ChainElement current;
public ChainBuilder then(ChainElement next) {
if (current == null) {
first = current = next;
} else {
current.setNext(next);
current = next;
}
return this;
}
public ChainElement get() {
return first;
}
}
次に、建設時:
ChainElement chain = new ChainBuilder()
.then(new FirstElement())
.then(new SecondElement())
.then(new ThirdElement())
.get();
chain.doSomething();