设计模式-建造者模式

-建造者:不同的对象,动态设置不同的属性

通过返回设置后的当前对象。如JDK里面的StringBuilder 抽象一个方法append(...)

面向对象的举例:装修房子厨房,你需要的一些属性(对象)热水器 、燃气灶、灯、水槽等等。

这些属性创建时都预留了位置,你需要上面就可以放进去啥,然后每个东西的颜色什么的都可以自由选择。

最后不同的人装修出来不同的厨房。

    public static void main(String[] args) {
        House house1 = new House.HouseBuilder()
                .withColor(Color.BLACK)
                .withGas(new Gas())
                .withLight(new Light())
                .build();
        System.out.println(house1);

        House house2 = new House.HouseBuilder()
                .withColor(Color.WHITE)
                .withLight(new Light())
                .build();
        System.out.println(house2);
    }

英雄必须有用武之地:

重点就是 return this; 

    public URL addParameter(String key, String value) {
        if (key == null || key.length() == 0
                || value == null || value.length() == 0) {
            return this;
        }
        // if value doesn't change, return immediately
        if (value.equals(getParameters().get(key))) { // value != null
            return this;
        }

        Map<String, String> map = new HashMap<String, String>(getParameters());
        map.put(key, value);
        return new URL(protocol, username, password, host, port, path, map);
    }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值