Im0*_*ity 6 php language-agnostic fluent-interface chaining
问题:使用许多方法实现流畅的接口会使类复杂度指标增长得非常快.
如何保持实现流畅界面的类的低复杂性?
有关特定课程的一些信息:
$this->wrapped某种方式转换对象.已经考虑过选项:
@method注释添加自动完成支持.高度期待任何选项的反馈(关于设计,性能,可维护性等).
检查过的例子:
Doctrine2 QueryBuilder:40 + 40-ish方法,2个类,1400 + 600行代码; 通过ExpressionBuilder课程分开
Symfony2 FormBuilder:10-areh暴露方法,1类,300行
问题可以被认为是与语言无关的 - 从PHP实现和设计观点的答案都同样受欢迎.
编辑:
目的是对函数式编程尼斯(易于使用和易于维护)工具(map,reduce,等)
一种方法是拥有一个简单、可靠的基类,该基类提供用于实现流畅接口类的工具方法。然后,流畅的接口类只需调用基类来完成它所做的一切,将复杂性降低到单个流畅的接口类。
您已经设计好流畅的界面了吗?(我想知道您实际上会使用多少种方法。)