当前位置: 首页 > article >正文

设计模式(3)builder

需求: 对于复杂的对象,我们只需要 通过 设置一些参数,就可以得到相对应的 实例。

简单来说, 需求就是用一个类  通过方法返回一个  新建的对象,而且可以通过方法去设置这个对象

public interface CarBuilder {
    void setCarName(String name);
    void setCarModel(String model);
    Car getCar();
}

 这个类有一个 内部私有 car, 通过getCar ,输出 car的实例。

package com.example.builder;

public class CarBuilderImp implements CarBuilder {
    private Car car = new Car ();
    @Override
    public void setCarName( String name) {
        car.setName(name);
    }

    @Override
    public void setCarModel(String model) {
        car.setModel( model);

    }

    @Override
    public Car getCar() {
        return car;
    }
}
package com.example.builder;

import android.util.Log;

import androidx.annotation.NonNull;

public class Car {
    String name;
    String model;

    public void setName(String name) {
        this.name = name;
    }

    public void setModel(String model) {
        this.model = model;
    }

    public String getName() {
        return name;
    }

    public String getModel() {
        return model;
    }

    @NonNull
    @Override
    public String toString() {
        Log.d("Car"+"LIU","name = " + this.name + "model = " + this.model);
        return this.name + this.model;
    }

}

example

        CarBuilderImp carBuilderImp = new CarBuilderImp();
        carBuilderImp.setCarModel("X1");
        carBuilderImp.setCarName("BMW");
        Car car = carBuilderImp.getCar();


2024-10-05 11:53:36.966 18346-18346/com.example.builder D/CarLIU: name = BMWmodel = X1

参考:百度安全验证

https://github.com/youlookwhat/DesignPattern#11-%E5%BB%BA%E9%80%A0%E8%80%85%E6%A8%A1%E5%BC%8F


http://www.kler.cn/news/334403.html

相关文章:

  • 序列化与反序列化基础及反序列化漏洞(附案例)
  • S7-200 SMART的数据类型说明
  • Stable Diffusion绘画 | 插件-Deforum:动态视频生成(中篇)
  • 基于Es的分词查询通过高亮效果实现前端高亮显示!!!!
  • 机器学习/数据分析--用通俗语言讲解时间序列自回归(AR)模型,并用其预测天气,拟合度98%+
  • GPTQ vs AWQ vs GGUF(GGML) 速览和 GGUF 文件命名规范
  • iTextPDF中,要实现表格中的内容在数据长度超过边框时自动换行
  • 【德国EnMAP高光谱卫星】
  • 日记学习小迪安全27
  • 【顺序表使用练习】发牌游戏
  • MySQL--聚合查询、联合查询、子查询、合并查询(上万字超详解!!!)
  • 《深度学习》OpenCV 摄像头OCR 过程及案例解析
  • 心觉:成事的基石,需要在“放弃”和“永不放弃”之间找到平衡
  • 冒泡排序,插入排序,快速排序,选择排序
  • 海外合规|新加坡推出智慧国2.0计划 设新网络安全与保障机构
  • 浅析Golang的Context
  • 《软件工程概论》作业一:新冠疫情下软件产品设计
  • JAVA运用中springBoot获取前端ajax提交参数方式汇总
  • Python | 使用Seaborn绘制KDE核密度估计曲线
  • Flutter笔记--通知