设计模式 建造者模式,java设计模式创建型模式
目录
优点缺点使用场景一、实现方式二、实现方式1、引入依赖2、实现三、测试总结
优点
1.建造者独立,易扩展。
2.便于控制细节风险。
缺点
1.产品必须有共同点,范围有限制。
2.如内部变化复杂,会有很多的建造类。
使用场景
1.需要生成的对象具有复杂的内部结构。
2.需要生成的对象内部属性本身相互依赖。
一、实现方式
包com。asur plus。常见。建筑商。风格1;公共类用户信息{私有字符串名称;私人年龄;/** * 创建一个新的建造者* * @ return */public static UserInfoBuilder builder(){ return new UserInfoBuilder();} public String getName(){ return name;} public void set name(String name){ this。name=名称;} public int getAge(){ return age;} public void setAge(int age){ this。年龄=年龄;} @将公共字符串重写为String(){ return UserInfo { name= name ,age= age }} /** *建造者内部类*/公共静态类UserInfoBuilder {私有字符串名称;私人年龄;公共UserInfoBuilder名称(字符串名称){ this.name=name还这个;} public UserInfoBuilder age(int age){ this。年龄=年龄;还这个;} /** * 创建一个新的实例对象并赋值* * @ return */public UserInfo build(){ UserInfo UserInfo=new UserInfo();用户信息。setname(这个。姓名);用户信息。setage(这个。年龄);返回userInfo} }}我们定义了一个用户信息类,有姓名,年龄两个属性,还定义了一个静态内部类UserInfoBuilder,帮助我们建造用户信息,并提供链式调用的方法。
二、实现方式
1、引入依赖
!龙目岛插件-依赖关系groupIdorg.projectlombok/groupId artifact id lombok/artifact id选项true/optional/dependency lombok需要在想法中安装插件,具体方法,请百度。
2、实现
包com。asur plus。常见。建筑商。风格二;进口龙目岛。建设者;进口龙目岛。数据;/** *设置为字符串方法注解*/@Data/** *建造者模式注解*/@ builder公共类userinfo 2 {私有字符串名称;私人年龄;}基于龙目岛的注解,我们省略了大部分代码,但是具体的实现方式和我们的方式一是一模一样的,调用方法也是一样的。
三、测试
包com。asur plus。常见。建设者;导入com。asur plus。常见。建筑商。风格1。userinfo导入com。asur plus。常见。建筑商。风格2。userinfo 2;/** * 建造者模式*/public class test main { public static void main(String[]args){//手写的方式UserInfo UserInfo=用户信息。构建器().名称(张三).年龄(20)。build();系统。出去。println(userInfo);//注解的方式用户信息2用户信息2=用户信息2。构建器().名称(李四).年龄(30)。build();系统。出去。println(userinfo 2);} }输出结果
总结
本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注盛行信息技术的更多内容!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。