【设计模式】Java设计模式 – 建造者模式
? 不断学习才是王道
? 继续踏上学习之路,学之分享笔记
? 总有一天我也能像各位大佬一样
? @一个有梦有戏的人 @怒放吧德德
?分享学习心得,欢迎指正,大家一起学习成长!
虽然很疲倦,但也要坚持学习!!!
目录
- 【设计模式】Java设计模式 – 建造者模式
- 简介
- 建造者模式实例
- ①、定义配置类
- ②、定义构建类
- ③、构建套票对象
简介
构建者是一种可以将复杂对象的构建和表示分离开来,从而使得一个构建过程可以生成多个不同的表示对象。建造者模式通过一步一步构建对象。
在构建对象可以通过new的方式或者工厂模式去实例化对象,但是有些对象就比较复杂,有些对象会不断的细分,并且不用类型的对象有不同的对象。倘若通过new或者工厂模式也会造成许多不变,由此可以通过Builder模式,既然集体构建比较复杂,那就一步一步的构建。
举个例子,就比如班车票,对于不同的对象有不同的优惠和规定。
通过配置类去统筹,在吧所有信息交给构建器去一个一个构建。等所有的票都构建完成之后,我们在通过构建器来构建套票对象。这样层层递进就会使得不这么复杂
建造者模式实例
本次实验通过配置类、构建类来完成,通过配置类做好各个方法来模拟对应票类的逻辑构造,通过构建器构建套票对象
①、定义配置类
通过不同的类型去构建不同的票类逻辑
package com.lyd.demo.builder.helper;/** * @Author: lyd * @Description: 票的配置类 * @Date: 2022-08-23 */public class TicketHelper { public void buildAdult(String info) { // TODO 编写逻辑 System.out.println("构建成年人票逻辑:" + info); } public void buildChildrenForSeat(String info) { // TODO 编写逻辑 System.out.println("构建有座儿童票逻辑:" + info); } public void buildchildrenForSeat(String info) { // TODO 编写逻辑 System.out.println("构建无座儿童票逻辑:" + info); } public void buildElderly(String info) { // TODO 编写逻辑 System.out.println("构建老年人票逻辑:" + info); } public void buildSoldier(String info) { // TODO 编写逻辑 System.out.println("构建军人及其家属票逻辑:" + info); }}
②、定义构建类
Builder类比较简单,只有一个helper类,但是可以获得套票中的所有信息,从而构建出套票对象
package com.lyd.demo.builder;import com.lyd.demo.builder.helper.TicketHelper;/** * @Author: lyd * @Description: 构建类 * @Date: 2022-08-23 */public class TickerBuilder { public static Object builder(TicketHelper helper) { // TODO 构建逻辑 System.out.println("通过TickerBuilder构建票信息"); return null; // 返回票的对象 }}
③、构建套票对象
通过TicketHelper去构建信息,在通过builder去构建出对象。
package com.lyd.demo.builder.test;import com.lyd.demo.builder.TickerBuilder;import com.lyd.demo.builder.helper.TicketHelper;/** * @Author: lyd * @Description: 测试类 * @Date: 2022-08-20 */public class TickerBuilderTest { public static void main(String[] args) { TicketHelper helper = new TicketHelper(); helper.buildAdult("成人票"); helper.buildChildrenForSeat("有座儿童票"); helper.buildchildrenForSeat("无座儿童票"); helper.buildElderly("老人票"); helper.buildSoldier("军人票"); Object ticker = TickerBuilder.builder(helper); }}
运行结果:
?德德小建议:
理解设计模式不是一件简单的事情,需要不断的学习和动手去练习,才能理解。只有掌握好设计模式,才能够真正的理解SpringAOP和Mybatis的底层原理。各位读者可以和我一样,动手敲一敲代码,甚至用不同的例子来做,通过debug一步一步调试,还有就是多看看别人的例子。能够有助于理解!谢谢各位观看指点!❤️ ❤️ ❤️