设计模式(Java)—Builder模式

在构建具有复杂结构的物体时,很难一气呵成,我们需要首先建造组成这个物体的各个部分,然后分阶段将它们组装起来。
Builder模式时用于组装具有复杂结构实例的模式。

示例:使用Builder模式编写“文档”程序,这里编写的文档具有以下结构:
1.含有一个标题
2.含有几个字符串
3.含有条目项目
这里写图片描述

Builder类:抽象类,并没有进行任何处理,仅仅声明了抽象方法,Builder类的子类决定了用来编写文档的具体处理。

package Builder;

//抽象类。声明该类的一系列抽象方法
public abstract class Builder {
    public abstract void makeTitle(String title);
    public abstract void makeString(String str);
    public abstract void makeItem(String[] items);
    public abstract void close();
}

Director类:使用Builder类中声明的方法来编写文档。其构造函数的参数是Builder 类型的,因为Builder类是抽象类,所以在传参时并不传入Builder的实例,而是传入Builder类子类的实例,Builder类的子类决定了文档具体的编写形式,construct方法中都是调用Builder类中的方法,即此方法将各组件生成的方法组装在一起。

package Builder;

//对外接口,外部通过此类调用已实现的功能,在Director构造函数的参数中传入Builder类型的实例,通过该实例调用方法,
public class Director {
    private Builder builder;
    public Director(Builder builder) {
        // TODO Auto-generated constructor stub
        this.builder = builder;
    }
    public void construct(){
        builder.makeTitle("Greeting");
        builder.makeString(
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值