建造者设计模式

建造者设计模式

建造者设计模式的定义: 将一个复杂的对象的构建与它的表示分离,是的同样的构建过程可以创建不同的表示。

核心类

  • 产品类 Person。
  • Builder 抽象建造者,规范产品的组建,一般是由子类实现具体的组建过程。
  • ConcreteBuider 具体建造者,具体的创建对象的类。
  • Directror 统一组建过程。

代码示例

产品角色:包含多个组成部件的复杂对象。

class Person{
    private String head;
    private String body;
    private String foot;

    public void setHead(String head) {
        this.head = head;
    }
    public void setBody(String body) {
        this.body = body;
    }
    public void setFoot(String foot) {
        this.foot = foot;
    }

    public void show(){
        System.out.println("这个人"+head+":"+body+":"+foot);
    }
}

抽象建造者 包含创建产品各个子部件(属性)的抽象方法。

abstract class Builder{

    //protecte修饰 子类可以操作这个对象
    protected Person person=new Person();

    abstract void head();
    abstract void body();
    abstract void foot();

    public Person getPerson(){
        return person;
    }
}

具体建造者:实现了抽象建造者接口。

class ConcreteBuider extends Builder{

    @Override
    void head() {
        person.setHead("头");
    }

    @Override
    void body() {
        person.setBody("身体");
    }

    @Override
    void foot() {
        person.setFoot("脚");
    }
}

指挥者:调用建造者中的方法完成复杂对象的创建。

class Director{
    private Builder builder;

    public Director(Builder builder){
        this.builder=builder;
    }

    public Person construct(){
        builder.head();
        builder.body();
        builder.foot();
        return builder.getPerson();
    }
}

客户类

public class Client{
    public static void main(String[] args) {

        Builder builder=new ConcreteBuider();
        Director director=new Director(builder);
        Person construct = director.construct();
        construct.show();
    }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值