Java建造者模式实例分析
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,今天小编给大家分享一下Java建造者模式实例分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了
千家信息网最后更新 2025年11月07日Java建造者模式实例分析
今天小编给大家分享一下Java建造者模式实例分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
优点
1.建造者独立,易扩展。
2.便于控制细节风险。
缺点
1.产品必须有共同点,范围有限制。
2.如内部变化复杂,会有很多的建造类。
使用场景
1.需要生成的对象具有复杂的内部结构。
2.需要生成的对象内部属性本身相互依赖。
一、实现方式
package com.asurplus.common.builder.style1;public class UserInfo { private String name; private int age; /** * 创建一个新的建造者 * * @return */ public static UserInfoBuilder builder() { return new UserInfoBuilder(); } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public String toString() { return "UserInfo{" + "name='" + name + ", age=" + age + '}'; } /** * 建造者内部类 */ public static class UserInfoBuilder { private String name; private int age; public UserInfoBuilder name(String name) { this.name = name; return this; } public UserInfoBuilder age(int age) { this.age = age; return this; } /** * 创建一个新的实例对象并赋值 * * @return */ public UserInfo build() { UserInfo userInfo = new UserInfo(); userInfo.setName(this.name); userInfo.setAge(this.age); return userInfo; } }}我们定义了一个 UserInfo 类,有 name,age 两个属性,还定义了一个静态内部类 UserInfoBuilder,帮助我们建造 UserInfo,并提供链式调用的方法。
二、实现方式
1、引入依赖
org.projectlombok lombok true
Lombok 需要在 IDEA 中安装插件,具体方法,请百度。
2、实现
package com.asurplus.common.builder.style2;import lombok.Builder;import lombok.Data;/** * get set toString 方法注解 */@Data/** * 建造者模式注解 */@Builderpublic class UserInfo2 { private String name; private int age;}基于 Lombok 的注解,我们省略了大部分代码,但是具体的实现方式和我们的方式一是一模一样的,调用方法也是一样的。
三、测试
package com.asurplus.common.builder;import com.asurplus.common.builder.style1.UserInfo;import com.asurplus.common.builder.style2.UserInfo2;/** * 建造者模式 */public class TestMain { public static void main(String[] args) { // 手写的方式 UserInfo userInfo = UserInfo.builder().name("张三").age(20).build(); System.out.println(userInfo); // 注解的方式 UserInfo2 userInfo2 = UserInfo2.builder().name("李四").age(30).build(); System.out.println(userInfo2); }}输出结果
以上就是"Java建造者模式实例分析"这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注行业资讯频道。
方式
模式
方法
注解
知识
篇文章
实例
对象
实例分析
分析
复杂
内容
大部分
属性
生成
不同
很大
两个
代码
优点
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
服务器怎样安装win7驱动
数据库的一些安全措施
软件开发项目部职责
网络安全制度系统
做微信招聘的软件开发
数据库最新技术前沿发展趋势
服务器怎么共享文件给其他电脑
华亭网络安全宣传
网络安全信息网
清妃服务器
软件开发项目备案表
上海交友软件开发哪家便宜
数据库中如何删除备注
cam软件开发用什么语言
如何获取公司邮箱pop服务器
服务器内网怎么可以远程上
贵州省网络安全宣传周先进单位
电脑版QQ数据库加密原理
软件开发没完成拒付
sql数据库中各个项目学分
商丘市网络技术公司
离子光谱数据库
长沙支付宝扫码点餐软件开发
服务器可以开虚拟机用么
华南师范大学网络安全
小迪2020网络安全网盘
成都软件开发培训费用多少
vb 局域网 数据库
桥梁大师数据库连接失败
湖北丝路贵人网络技术有限