Java链式编程、什么是链式编程、链式编程怎么调用,链式编程的使用形式,Builder模式实现链式编程(保姆级教程)

Java链式编程

链式编程的特点是可以通过一个方法调用多个方法,将多个方法调用链接起来,形成一条“链式”,从而提高代码的可读性。

在链式编程中,每个方法的返回类型 应该是调用该方法的对象类型,这样才能够在调用完一个方法后直接接着调用下一个方法。

普通方式使用链式编程

举例说明:

public class Test{
    public static void main(String[] args){
        Test test = new Test();
        test.method1().method2().method3()......
    }

    public Test method1(){
        return new Test();
    }
    
    public Test method2(){
        return new Test();
    }
    
    public Test method3(){
        return new Test();
    }
    ....
    ....
    public void method4(){

    }
}

上面就可以搞成链式调用:test.method1().method2().method3()...... 因为你调完 method1() 后,返回的还是一个对象,刚好这个对象能够调用剩余的方法,然后就这样反复进行,直到终点。假如:test.method1().method4().method3()...... 这样就不行了,因为你调 method4() 后,还咋调。

Builder模式实现Java链式编程

Builder模式是一种对象创建模式,允许我们创建一个对象,并设置其属性值。举例:

public class Test {

    private String paramOne;
    private String paramTwo;

    private Test() {
    }  //无参构造

    public static SampleBuilder builder() {
        return new SampleBuilder();
    }

    //内部类-----------
    public static class SampleBuilder {
        private Test sample = new Test();

        public SampleBuilder withParamOne(String paramOne) {
            sample.paramOne = paramOne;
            return this;
        }

        public SampleBuilder withParamTwo(String paramTwo) {
            sample.paramTwo = paramTwo;
            return this;
        }

        public Test build() {
            return sample;
        }

    }

    //调用
    public static void main(String[] args) {
        
        //使用形式1:
        Test test = new Test();
        Test hello = test.builder()
                .withParamOne("Hello")
                .withParamTwo("world!")
                .build();
        System.out.println(hello.toString());

        //使用形式2:
        Test test1 = new Test()
                .builder()
                .withParamOne("Hello")
                .withParamTwo("world!")
                .build();
        System.out.println(test1.toString());

        //使用形式3:
        Test test2 = Test.builder()
                .withParamOne("Hello")
                .withParamTwo("world!")
                .build();
        System.out.println(test2.toString());
    }

}

虽然调用时,中间 .withParamOne("Hello")、.withParamTwo("world!") 中的返回类型是 this(也就是SampleBuilder 对象)而不是 Test,但是不影响链的调用,因为这个 this 对象也可以调用这个方法啊。

所以相当于 中间隐藏了接收方法调用后的返回结果。

再比如:

@Bean
public Docket getDocket() {
    //创建Docket对象
    Docket docket = new Docket(DocumentationType.SWAGGER_2);
    Docket docket1 = docket.apiInfo(null); //设置Swagger接口文档的首页信息
    ApiSelectorBuilder select = docket1.select(); //初始化并返回一个API选择构造器
    ApiSelectorBuilder apis = select.apis(RequestHandlerSelectors.any()); //为任何接口生成API文档
    ApiSelectorBuilder paths = apis.paths(PathSelectors.any()); //可以根据url路径设置哪些请求加入文档,忽略哪些请求
    Docket build = paths.build();//创建API文档
    return build;
}

//改写成链式编程为:
@Bean
public Docket getDocket() {
    Docket docket = new Docket(DocumentationType.SWAGGER_2)
        .apiInfo(null)   
        .select() 
        .apis(RequestHandlerSelectors.any())   
        .paths(PathSelectors.any())
        .build();
    return docket;
}
  • 10
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
使用编程方式定义RDD模式的基本步骤如下: 1. 定义一个SparkSession对象,可以使用以下语句创建: ```python from pyspark.sql import SparkSession spark = SparkSession.builder.appName("MyApp").getOrCreate() ``` 2. 构造RDD中的数据,可以从文件、数据库、内存等来源中读取数据。例如,从文件中读取数据可以使用以下语句: ```python rdd = spark.sparkContext.textFile("path/to/file") ``` 3. 定义RDD的模式,即RDD中每个元素的数据类型。可以使用StructType和StructField定义模式。例如,定义一个包含两个字段的模式可以使用以下语句: ```python from pyspark.sql.types import StructType, StructField, StringType, IntegerType schema = StructType([ StructField("name", StringType(), True), StructField("age", IntegerType(), True) ]) ``` 4. 将RDD转换为DataFrame,可以使用toDF()方法将RDD转换为DataFrame。例如,将上面定义的rdd转换为DataFrame可以使用以下语句: ```python df = rdd.toDF(schema) ``` 5. 对DataFrame进行操作,例如过滤、分组、排序等操作。例如,对上面定义的df进行过滤可以使用以下语句: ```python filtered_df = df.filter(df["age"] > 18) ``` 6. 最后,可以将处理后的数据输出到文件、数据库等存储介质中。例如,将上面定义的filtered_df输出到文件中可以使用以下语句: ```python filtered_df.write.csv("path/to/output") ``` 以上就是使用编程方式定义RDD模式的基本步骤。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小学鸡!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值