设计模式-java实战建造者模式(uml+java)

背景

20+种设计模式,实践ing。本wiki将阐述建造者模式(builder模式)。
这个模式的特点是:降低同系列对象的创建难度。
重点参考:https://www.bilibili.com/video/BV1Qx411o7tN?p=27

实践过程

需求分析

拿视频里面的例子来说:
客户端(client)想创建几个电脑对象,给不同的人使用,那么就会出现以下代码:

// 电脑类如下
@Data
public class Computer {
	private String cpu;
	private String hard;
	private String gpu;
}

// 使用

public class Main {
	public static void main(String[] args){
		Computer c1 = new Computer();
		c1.setCpu("i3");
		c1.setHard("500G");
		c1.setGpu("1080");
		Computer c2 = new Computer();
		c1.setCpu("i5");
		c1.setHard("1000G");
		c1.setGpu("1080");
	}
}

是不是觉得每次都要new对象出来,而且还有进行赋值,非常的不爽,这里违反了一个法则:迪米特法则(即最小知道法则)。
相信每个程序员都只是想简简单单的把对象做出来,而不去关心设置对象属性的细节。

builder模式UML

在这里插入图片描述

实现代码

代码地址:https://gitee.com/wangtonggui/design_pattern
Computer类,有不同的属性(实际中的类可能更复杂)。最终是要建造computer。
在这里插入图片描述
ComputerBuilder类,定义建造者。其实就是定义每个组件的设置过程(重点:这个过程顺序可能是固定的,也就是说需要遵循一个装配的规范
在这里插入图片描述
实现一个建造者
在这里插入图片描述
实现指挥者,指挥者实施装配过程
在这里插入图片描述
客户端client,进行调用
在这里插入图片描述
大家会发现,GamePlayerComputer只需要按照之前的规范进行定义即可。

评价

建造者模式在框架中经常会被用到,其实在平常的开发中用的不多。博主之后将研究一下spring中对于建造者的使用,并进行博文阐述。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章