Currently a filter has to support all methods defined by the service to be pipelined. In some situations this is not desirable because
2. To optimize the performance of some methods.
Without support from the PipelineFactory, a designer can achieve the same objective by breaking down the interface into smaller interfaces, create a pipeline for one of these sub-interface only, and then build a facade to combine the small interfaces. However, this increases the complexity of the design.
A proposal solution is to modify the PipelineFactory so that the first Bridge short-circuits to the terminator if the caller calls a method that is not supported by filters. The factory shall be able to find these methods by comparing the filter interface to the service interface.
Calling sequence for a normal pipeline method:
Caller -> Bridge1 -> Filter1 -> Bridge2 -> Filter2 -> Bridge3 -> Filter3 -> Terminator
Calling sequence for a short-circuit pipeline method:
Caller -> Bridge1 -> Terminator