设计模式3.建造者模式

理解

在我的理解之中呢,我觉得,这个建造者模式也是一个分工了得模式,首先是接口,然后是在这个接口,或者可以用一个抽象类来定义,这个抽象类呢可以写上一些固定的方法,然后在这些方法当中,通过一个实现类来进行定义,实现类可以对这个方法进行编写和实现,通过将这些方法一些定义好了之后,再通过创建一个类当中的方法,来对这些方法进行一个调用,这样就完成了。

应用

首先下面要介绍的是一个关于computer电脑产品的推出,推出的过程当中,包括
这个其实很简单
Computer代码

public abstract  class Computer {
    private String type;//建立对应的版本
    private String cpu;
    private String ram;//内存
    private String hardDisk;//硬盘

    public String getType() {
        return type;
    }

    public String getCpu() {
        return cpu;
    }

    public String getRam() {
        return ram;
    }

    public String getHardDisk() {
        return hardDisk;
    }

    public void setType(String type) {
        this.type = type;
    }

    public void setCpu(String cpu) {
        this.cpu = cpu;
    }

    public void setRam(String ram) {
        this.ram = ram;
    }

    public void setHardDisk(String hardDisk) {
        this.hardDisk = hardDisk;
    }
}

X201(电脑类型)

public class X201 extends  Computer{
    public X201(){
        this.setType("联想小新时代i5");

    }

    public String toString(){
        return "型号:\t"+this.getType()+"\ncpu:\t"+this.getCpu()+ "\n内存:\t" + this.getRam() +
                "\n硬盘:\t" + this.getHardDisk();
    }
}

ComputerBuilder接口

public interface ComputerBuilder {
    void buildCpu();
    void buildRam();
    void buildHardDisk();
}

建立对应的实现类
T201Builder.java

public class X201Builder implements ComputerBuilder{
    private X201 computer=new X201();

    @Override
    public void buildCpu() {
        computer.setCpu("i5-2019");
    }

    @Override
    public void buildRam() {

        computer.setRam("4GB 1333MHZ");
    }

    @Override
    public void buildHardDisk() {

        computer.setHardDisk("500GB 7200转");
    }
}

接下来,我们这些产品的设计方法也都建立好了,下面做的就是增加一个导演者,来将这些代码进行一个封装,这个封装就是说对已有模块进行封装
ComputerDirector

public class ComputerDirector {
    ComputerBuilder builder;
    public X201 constructX201(){
        builder=new X201Builder();
        builder.buildCpu();
        builder.buildRam();
        builder.buildHardDisk();
        return  (X201)builder.getResult();
    }
}

测试Test类

public class Test {
    public static void main(String[] args) {
        ComputerDirector director=new ComputerDirector();
        Computer X201=director.constructX201();
        System.out.println(X201);
    }
}

结果

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值