V tomto článku se budeme zabývat různými způsoby implementace vzoru návrhu potrubí od základů až po složitější řešení.
Vzor potrubí
Vzor potrubí je vzor návrhu softwaru, který poskytuje možnost sestavit a provést posloupnost operací.
Tento vzor je vhodnější používat ve spojení se vzorem zásuvným, aby se při spuštění aplikace dynamicky sestavila pipeline.
Sekvence
Nejzákladnější implementací pipeline by byla jednoduchá sekvence operací.
Pro zpracování dat lze vyvolat rozhraní operace.
Pipeline zpracovává každou operaci postupně. Třída pipeline také implementuje rozhraní IOperation, takže je lze kombinovat.
Operaci lze zapsat do speciální třídy.
Nebo použít wrapper pro automatické vytvoření operace z lambdy.
Operace by měly být zaregistrovány před vyvoláním pipeline.
Přerušovač obvodů
První funkcí, kterou chcete přidat do své pipeline, je přidat přerušovač obvodů.
Každá operace vrátí výsledek : neúspěch nebo úspěch.
Pokud operace selže, provádění pipeline by se mělo zastavit.
Asynchronní
Dalším požadavkem by mohlo být, aby pipeline uměla pracovat s asynchronními operacemi.
Každá operace nyní bude muset volat další operaci v pipeline, až dokončí zpracování dat.
Pipeline je trochu složitější, protože potřebuje nastavit další operaci, když je zaregistrována nová operace. Dalším řešením je použití builderu.
Tato operace je asynchronní a bude probíhat ve vyhrazeném vlákně, po vypršení času vyvolá další operaci, která bude pokračovat v pipeline.
Generickou operaci lze použít jak s jednoduchou akcí, tak použít vestavěný přerušovač, pokud použijete funkci.
Tento jednoduchý příklad využívá několik námi implementovaných funkcí.
Teď už víte, jak vytvořit asynchronní pipeline !