Java建造者模式实例分析
发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,今天小编给大家分享一下Java建造者模式实例分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了
千家信息网最后更新 2025年01月19日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安全错误
数据库的锁怎样保障安全
楚雄服务器回收中心
固原软件开发服务价格
服务器的核数怎么设置
保证数据库安全和数据库备份
软件开发的下班时间
广州有学校学软件开发
诸暨市淘汇网络技术服务部
学校网络安全自查计划
hp服务器代理商查询
软件开发 系统流程图
彩票软件开发流程
网络安全宣传周之法治
计算机通信网络安全维护
生产数据库安全操作规范
适用于mac的软件开发软件
net服务器搭建
福州百度91网络技术有限
提高网络安全知识手抄报
潮汕app软件开发
软件开发所需设备
数据库有数据接口不返回
5g网络技术的关键是
内蒙古学生网络技术咨询信息推荐
idc2020年度服务器出货量
外部数据如何导入数据库
缺少网络安全专业技术人才
网络安全座谈会邀请函
软件开发毕业实践周记
mit心电数据库有什么用
怎么打开数据库表的内容