流接口模式通常用来编写易于阅读的代码,就像自然语言一样(如英语)。
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
   | class Sql {
      private array $fields = [];     private array $from = [];     private array $where = [];
      public function select(array $fields): Sql     {         $this->fields = $fields;
          return $this;     }
      public function from(string $table, string $alias): Sql     {         $this->from[] = $table . ' AS ' . $alias;
          return $this;     }
      public function where(string $condition): Sql     {         $this->where[] = $condition;
          return $this;     }
      public function __toString(): string     {         return sprintf(             'select %s from %s where %s',             join(', ', $this->fields),             join(', ', $this->from),             join(' AND ', $this->where)         );     } }
  $query = (new Sql())->select(['foo', 'bar'])->from('foobar', 'f')->where('f.bar = foo'); echo $query, PHP_EOL;
   | 
 
这个模式跟前一个模式都有点说不出的诡异,可能不是新模式,属于没被正式划分到设计模式中的模式???