Java中的建造者模式是一种创建型设计模式,它的主要目的是为了通过一系列简单的步骤构建复杂的对象,允许创建复杂对象的不同表示形式,同时隐藏构造细节.它能够逐步构建对象,即先创建基本对象,然后逐步添加更多属性或部件,直到最终构建出完整的对象.
该模式的主要思想是将对象的构造过程分解成多个步骤,每个步骤都可以独立运行,并且在每个步骤完成后都可以返回一个中间状态,然后使用一个导演类来协调这些步骤,最终创建出完整的对象.
建造者模式通常包括一下角色:
(相关资料图)
首先创建一个产品类
package com.fanqiechaodan.build; import lombok.Data; /** * @Classname Car * @Description 产品类 */ @Data public class Car { private String brand; private String model; private String color; private int maxSpeed; }
其次创建抽象建造者类
package com.fanqiechaodan.build; /** * @Classname CarBuilder * @Description 抽象建造者类 */ public abstract class CarBuilder { protected Car car; public CarBuilder(){ car = new Car(); } public abstract void buildBrand(); public abstract void buildModel(); public abstract void buildColor(); public abstract void buildMaxSpeed(); public Car getCar() { return car; } }
然后创建具体构造者类
package com.fanqiechaodan.build; /** * @Classname BMWBuilder * @Description 具体构造者类 */ public class BMWBuilder extends CarBuilder { @Override public void buildBrand() { car.setBrand("BMW"); } @Override public void buildModel() { car.setModel("X6"); } @Override public void buildColor() { car.setColor("Black"); } @Override public void buildMaxSpeed() { car.setMaxSpeed(218); } }
创建导演类
package com.fanqiechaodan.build; /** * @Classname Director * @Description 导演类 */ public class Director { private CarBuilder carBuilder; public Director(CarBuilder carBuilder) { this.carBuilder = carBuilder; } public Car constructCar() { carBuilder.buildBrand(); carBuilder.buildColor(); carBuilder.buildMaxSpeed(); carBuilder.buildModel(); return carBuilder.getCar(); } }
测试
package com.fanqiechaodan.build; /** * @Classname Demo * @Description 建造者模式 */ public class Demo { public static void main(String[] args) { CarBuilder carBuilder = new BMWBuilder(); Director director = new Director(carBuilder); Car car = director.constructCar(); System.out.println(car.toString()); } }
优点:
简化对象创建的过程:建造者模式可以将对象的构造过程分解为多个步骤,使得对象的创建变得简单明了,易于维护和扩展提高可读性:由于每个构建步骤都有一个明确的名称,因此代码更具有可读性和可维护性.灵活性:建造者模式允许您根据需要使用不同的构建起创建不同的对象,从而提高了灵活性和可重用性.缺点:
建造者模式需要创建多个对象,因此可能会增加系统的内存开销.由于建造者模式需要编写多个类,因此可能会增加代码量和复杂性.应用场景:
当对象需要多个步骤才能创建时,可以使用建造者模式当需要创建多个不同的对象时,可以使用建造者模式,每个对象的构造过程可以由不同的构建器来完成当对象的构造过程非常复杂或需要进行多项配置时,可以使用建造者模式总的来说,建造者模式非常适合创建复杂的对象,并且使代码更加灵活和已于扩展.到此这篇关于Java建造者模式构建复杂对象的最佳实践的文章就介绍到这了,更多相关Java建造者模式内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
关键词:
Java建造者模式构建复杂对象的最佳实践_世界微头条
异地恋坏处(异地恋的坏处)_快看点
文件夹制作_文件夹制作
汉斯希尔尊享 LUXE 厨下式净热一体机
热点聚焦:红参泡水喝一次放多少 红参泡水泡几片合适呢
2023石家庄汽车文化节E5馆,智己LS7来了!|视焦点讯
小米2022年度ESG报告:拥有16171名研发人员 讯息
国际油价下滑 “三桶油”首季盈利有升有降:净赚逾958亿元
“五一”节前强化排查治理 中塘镇开展燃气安全联合大检查
马德里网球公开赛:阿尔卡拉斯三盘涉险过关 环球新动态
每日聚焦:湘西州黄金茶制作专项第二期培训暨黄金茶制作技能大师工作室培训举行
传奇继续?名记:伊布仍想继续生涯,不一定留在米兰 当前热文
环球今热点:Kubuntu Focus 发布 Focus Ir14 笔记本电脑,起售价 895 美元
*ST皇台2022年净利润同比扭亏 已申请撤销退市风险警示|快播
伊朗外长:伊朗和沙特将在数天内互相重开大使馆 全球速读
视讯!大通中心苦吞季后赛第二场失利 此前只输了22年总决G1
天天亮点!拧紧道路交通安全“阀”
股票行情快报:粤宏远A(000573)4月28日主力资金净买入196.52万元 天天百事通
中国数字经济规模去年达50.2万亿元
全球讯息:江西境内首次发现 巨型恐龙化石体长超过15米
全球热讯:有想过会与耐克签终身合同?KD笑答:说实话 我一开始就那么想
环球热头条丨鸡蛋如何煮才好吃教学 煮鸡蛋的窍门
环球热推荐:华统股份(002840):4月28日北向资金减持44.23万股
全球快看点丨4月28日基金净值:长安成长优选混合A最新净值0.6817,涨6.9%
焦点信息:生物质颗粒生产线全套设备_生物质
环球短讯!厦门老院子景区旅游年卡用户五一专享优惠活动
今日热讯:全球连线丨中国特高压技术进步助力“双碳”目标实现
4月28日晚间沪深上市公司重大事项公告最新快递 信息
春暖花开的唯美句子_春暖花开的美句
环球快消息!属蛇聪明,属猴精明,十二生肖智商排行榜,太准了