Java建造者模式实例分析
发表于:2024-11-19 作者:千家信息网编辑
千家信息网最后更新 2024年11月19日,今天小编给大家分享一下Java建造者模式实例分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了
千家信息网最后更新 2024年11月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安全错误
数据库的锁怎样保障安全
vba获取ftp服务器配置
无锡先导软件开发研究生
阿里云服务器在线文件管理
网络安全是什么特征有哪些
推荐功能数据库设计
广州为想互联网科技有限
云服务器的管理权限
数据库报3414错误
威胜信息软件开发
防范网络安全讲座新闻稿
手机服务器的问题
武汉速尔网络技术有限公司
湖北酷奇互联网科技有限公司
继续教育网络安全题库
教职工网络安全制度
国内服务器安全
软件开发外包厂商
昵称设计软件开发
海淀区网络技术咨询采购
工行软件开发中心在哪上班
平江中学护苗网络安全
数据库系统的模式是稳定不变的
网络安全与应急管理硕士
outlook服务器端口
东莞拼团软件开发中心
王牌战争是哪个服务器的
重庆销售业务erp软件开发
酒店预订管理数据库
导出发票数据库
快可立注册不上提示服务器异常