0%
概念
管道(pipeline)设计模式流水线模式就是将数据传递到一个任务序列中,管道扮演着流水线的角色,数据在这里被处理然后传递到下一个步骤
释义
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
| <?php
interface PipelineBuilder { public function __construct($payload); public function pipe(StageBuilder $stage); public function process(); }
class Pipeline implements PipelineBuilder { protected $payload; protected $pipes = [];
public function __construct($payload) { $this->payload = $payload; }
public function pipe(StageBuilder $stage) { $this->pipes[] = $stage; return $this; }
public function process() { foreach ($this->pipes as $pipe) { call_user_func([$pipe, 'handle'], $this->payload); } } }
interface StageBuilder { public function handle($payload); }
class StageOneBuilder implements StageBuilder { public function handle($payload) { echo 'one-'; } }
class StageTwoBuilder implements StageBuilder { public function handle($payload) { echo 'two-'; } }
$pipeline = new PipeLine('step'); $pipeline->pipe(new StageOneBuilder())->pipe(new StageTwoBuilder())->process();
|