设计模式:建造者模式

含义:建造者模式,顾名思义,就是通过一系列的建造(set),最后建造(build)出我们想要的东西。

出现背景:编程过程中,当我们构造一个类,并为其属性进行赋值过程中,我们的做法是什么呢?构造方式注入,通过setter方式。这是我们通常使用的方式,但是,当一个类的属性很多,通过这两种方式进行注入将是很长的一串,且对于构造方式来说,每个字段的含义将变得不明确。

实例:

class Demo{
    private String name;
    private int age;
    private String property_1;
    private String property_n;
    ...//各个setter
}
Demo demo = new Demo();
demo.setName("csdn");
demo.setAge(18);
...

当我们面临几十个属性的bean时,将是一个很难受的赋值过程,换行、demo.**;将是之后所有属性赋值过程的操作流程。

接下来,我们的建造者就出现了。

class Demo{
    private String name;
    private int age;
    private String property_1;
    private String property_n;
    ...//各个setter
    /**
     * 建造者
     */
    public static class DemoBuilder{
        private Demo demo;
        public DemoBuilder(){
            demo = new Demo();
        }
        public DemoBuilder setName(String name){
            this.demo.setName(name);
            return this;
        }
        ...
        public Demo build(){
            return demo;
        }
    }
}

实际使用起来是这样的:

Demo demo = new Demo.DemoBuilder()
.setName("csdn")
.setAge("18")
.setProperty_1("")
....
.build();

以上就是我们的建造者简单使用。

学习过使用spring-security的同学可能会发现,在配置http过滤权限过程中有相似的使用,没错,spring-security中就有使用建造者的典型例子,不过他是使用and()进行的方法间的链接,实现原理很简单:

public HttpSecurity and(){
    return this;
}
以上就是建造者模式的简单应用,欢迎拍砖!
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值