大家好,这是设计模式专题的第二篇文章,我们一起来聊聊链式方法的设计模式。
链式方法也叫做流式方法,是一种相对比较新的概念,经常在流式计算或者类似的场景当中出现。举个例子,我们之前讲过的pyspark当中就用了这个模式,比如当我们处理rdd的时候,经过转换操作我们得到的仍然是一个rdd,直到遇到执行操作位置。dataframe也是一样的,我们转换阶段的操作我们可以连在一起写。
我们来看一个例子:
df.select("xx", "yy").withColumn("id", monotonically_increasing_id()).join(df2, ["id"], "left").join(df3, ["id"])
看出来了吗,因为中间的这些操作返回的结果都是dataframe,所以我们可以把它们写成一串。也就是流式操作的写法,Java8的一个重大特性就是支持了流式操作。所以当时Java8出来之后很多程序员很不适应,因为不习惯写这样的流式操作。
流式