构建者模式

看到Flink 写入到redis的源码包,很经典的构建者模式。

//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by Fernflower decompiler)
//

package org.apache.flink.streaming.connectors.redis.common.config;

import java.util.Objects;

public class FlinkJedisPoolConfig extends FlinkJedisConfigBase {
    private static final long serialVersionUID = 1L;
    private final String host;
    private final int port;
    private final int database;
    private final String password;

    private FlinkJedisPoolConfig(String host, int port, int connectionTimeout, String password, int database, int maxTotal, int maxIdle, int minIdle) {
        super(connectionTimeout, maxTotal, maxIdle, minIdle);
        Objects.requireNonNull(host, "Host information should be presented");
        this.host = host;
        this.port = port;
        this.database = database;
        this.password = password;
    }

    public String getHost() {
        return this.host;
    }

    public int getPort() {
        return this.port;
    }

    public int getDatabase() {
        return this.database;
    }

    public String getPassword() {
        return this.password;
    }

    public String toString() {
        return "JedisPoolConfig{host='" + this.host + '\'' + ", port=" + this.port + ", timeout=" + this.connectionTimeout + ", database=" + this.database + ", maxTotal=" + this.maxTotal + ", maxIdle=" + this.maxIdle + ", minIdle=" + this.minIdle + '}';
    }

    public static class Builder {
        private String host;
        private int port = 6379;
        private int timeout = 2000;
        private int database = 0;
        private String password;
        private int maxTotal = 8;
        private int maxIdle = 8;
        private int minIdle = 0;

        public Builder() {
        }

        public FlinkJedisPoolConfig.Builder setMaxTotal(int maxTotal) {
            this.maxTotal = maxTotal;
            return this;
        }

        public FlinkJedisPoolConfig.Builder setMaxIdle(int maxIdle) {
            this.maxIdle = maxIdle;
            return this;
        }

        public FlinkJedisPoolConfig.Builder setMinIdle(int minIdle) {
            this.minIdle = minIdle;
            return this;
        }

        public FlinkJedisPoolConfig.Builder setHost(String host) {
            this.host = host;
            return this;
        }

        public FlinkJedisPoolConfig.Builder setPort(int port) {
            this.port = port;
            return this;
        }

        public FlinkJedisPoolConfig.Builder setTimeout(int timeout) {
            this.timeout = timeout;
            return this;
        }

        public FlinkJedisPoolConfig.Builder setDatabase(int database) {
            this.database = database;
            return this;
        }

        public FlinkJedisPoolConfig.Builder setPassword(String password) {
            this.password = password;
            return this;
        }

        public FlinkJedisPoolConfig build() {
            return new FlinkJedisPoolConfig(this.host, this.port, this.timeout, this.password, this.database, this.maxTotal, this.maxIdle, this.minIdle);
        }
    }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

浅唱战无双

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

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

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

打赏作者

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

抵扣说明:

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

余额充值