小试牛刀-自己写一个构造器

定义:构造器是通过方法分离的形式传入参数,最后一步调用build()返回生成构造的对象。

我自定义了一个构造一个屋子的构造器,它能灵活根据需求生成属性。

复制代码
/**
 * 房子构造器
 * Created on 2023/07/24 by Qi.
 */
public class HouseBuilder {
    private final House house;

    public HouseBuilder()
    {
        this.house = new House();
    }

    public static HouseBuilder create(){
        return new HouseBuilder();
    }

    public HouseBuilder woodType(int woodType){
        this.house.getRoof().setWoodType(woodType);
        return this;
    }

    public HouseBuilder door(String door){
        this.house.setDoor(door);
        return this;
    }

    public HouseBuilder windows(String windows){
        this.house.setWindows(windows);
        return this;
    }

    public HouseBuilder rooms(int room){
        this.house.setRooms(room);
        return this;
    }

    public House build(){
        return house;
    }

    public static void main(String[] args) {
        House house = HouseBuilder.create()
                .door("白色木门")
                .rooms(2)
                .windows("3个窗户")
                .woodType(1)
                .build();
        System.out.println();
    }
}
HouseBuilder
复制代码

Bean类:

复制代码
/**
 * 房子的构造
 * Created on 2023/07/24 by Qi.
 */
@Data
public class House {
    /**
     * 屋顶
     */
    private Roof roof;
    /**
     * 房间 1:1个房间 2:两个房间
     */
    private int rooms;
    /**
     * 窗户种类 CIRCLE SQUARE
     */
    private String windows;
    /**
     * 门的种类 BIG SMALL
     */
    private String door;

    public Roof getRoof(){
        return roof == null ? roof =new Roof():roof;
    }


}
House
复制代码
复制代码
/**
 * 房顶
 * Created on 2023/07/24 by Qi.
 */
@Data
public class Roof {
    /**
     * 1: 榉木 2:黄花梨 3:檀木
     */
    private int woodType;
    /**
     * 屋顶高度 : 厘米
     */
    private int height;
    /**
     * 形状
     */
    private int shape;
}
Roof
复制代码

 

posted @   IT知识生产小店铺  阅读(5)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示