前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【面试八股文】每日一题:谈谈你对建造者模式的理解

【面试八股文】每日一题:谈谈你对建造者模式的理解

作者头像
用户4919348
发布2023-08-24 12:09:06
1550
发布2023-08-24 12:09:06
举报
文章被收录于专栏:波波烤鸭波波烤鸭

谈谈你对建造者模式的理解

每日一题-设计模式-谈谈你对建造者的理解【面试八股文】

1.什么是建造者模式

  建造者模式是一种创建型设计模式,它允许你创建复杂对象的步骤独立于对象本身。

  在Java中,建造者模式由一个包含多个方法的Builder类和一个需要构建的复杂对象类组成。Builder类负责设置复杂对象的各个部分,而复杂对象类则负责实际构建对象。

下面通过一个案例代码来演示下

代码语言:javascript
复制
// 复杂对象类
@Data
public class Car {
    private String brand;
    private String model;
    private int year;
    
}

// Builder类
public class CarBuilder {
    private Car car;
    
    public CarBuilder() {
        car = new Car();
    }
    
    public CarBuilder setBrand(String brand) {
        car.setBrand(brand);
        return this;
    }
    
    public CarBuilder setModel(String model) {
        car.setModel(model);
        return this;
    }
    
    public CarBuilder setYear(int year) {
        car.setYear(year);
        return this;
    }
    
    public Car build() {
        return car;
    }
}

// 使用建造者模式创建一个Car对象
public class Main {
    public static void main(String[] args) {
        Car car = new CarBuilder()
                        .setBrand("Toyota")
                        .setModel("Camry")
                        .setYear(2020)
                        .build();
        
        System.out.println("Brand: " + car.getBrand());
        System.out.println("Model: " + car.getModel());
        System.out.println("Year: " + car.getYear());
    }
}

2.和工厂模式的区别

建造者模式和工厂模式都是创建对象的设计模式,但它们有一些不同之处。

  1. 目的:建造者模式的主要目的是创建一个复杂对象,这个对象由多个部分组成,而工厂模式的主要目的是为了创建对象而不暴露创建逻辑。
  2. 使用方式:建造者模式使用链式调用来设置对象的各个属性,最后通过调用build()方法来构建对象;而工厂模式通常使用一个工厂类来创建对象,通过调用工厂类的方法来获取对象的实例。
  3. 灵活性:建造者模式更加灵活,可以根据需要动态地设置对象的各个属性,而工厂模式在创建对象时通常只能使用工厂类提供的固定接口。
  4. 对象复杂度:建造者模式适用于创建复杂对象,可以通过设置各个属性来构建对象;而工厂模式适用于创建相对简单的对象。

总的来说,建造者模式更适合创建复杂对象,而工厂模式更适合创建简单对象。选择使用哪种模式取决于对象的复杂度和创建过程的灵活性需求。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-08-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 谈谈你对建造者模式的理解
    • 1.什么是建造者模式
      • 2.和工厂模式的区别
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档