设计模式(3) Builder(建造者)模式

前言:在学习c++设计模式后对于建造者模式的理解(由于笔者现在目前在使用java语言进行学习,所以代码片段是使用java来进行编写的可能有些地方会有错误,希望大家能够指正)

建造者模式:在软件系统中,有时候面临着”一个“复杂对象的创建工作其通常由各个部分的子对象用一定的算法构成,由于需求的变化这个复杂部分的内部常常会发生变化,但是将这个对象组合在一起的算法却又相对稳定,这个模式和模板方法模式有相似之处,但这个模式主要来解决对象的创建工作

下面大家来实现一个需求,需要建造一间房子,需要实现step1-step5五个步骤
代码实现:

House:

public abstract class House {
    public void init(){
        this.Builder1();
        this.Builder2();
        this.Builder3();
        this.Builder4();
        this.Builder5();
    }

    abstract void Builder1();
    abstract void Builder2();
    abstract void Builder3();
    abstract void Builder4();
    abstract void Builder5();
}

Build

public class Build extends House{
    void Builder1() {
        System.out.println("建窗户");
    }

    void Builder2() {
        System.out.println("建地板");
    }

    void Builder3() {
        System.out.println("建厨房");
    }

    void Builder4() {
        System.out.println("建卧室");
    }

    void Builder5() {
        System.out.println("建客厅");
    }
}

主程序:

public class Run {
    public static void main(String[] args) {
        House house = new Build();
        house.init();
    }
}

运行截图:
在这里插入图片描述

在这个模式中,对于复杂对象Build,用户不需要知道其中的构建细节只需要使用其中的方法就可以完成房子的构建,并且当我们需要修改复杂对象build的时候也不需要去动主程序的代码(稳定)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值