什么是Java建造者模式

发布时间:2021-06-25 10:09:33 作者:chen
来源:亿速云 阅读:149

本篇内容介绍了“什么是Java建造者模式”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

建造者模式

建造者模式

  1. 建造者模式(Builder Pattern ) 又叫生成器模式,是一种对象构建模式。它可以将复杂对象的建造过程抽象出来(抽象类别),使这个抽象过程的不同实现方法可以构造出不同表现(属性)的对象。

  2. 建造者模式 是一步一步创建一个复杂的对象,它允许用户只通过指定复杂对象的类型和内容就可以构建它们,用户不需要知道内部的具体构建细节

什么是Java建造者模式

建造者模式的四个角色

举个例子

就拿建造者模式字眼 建造举例

农村人都喜欢在老家建房子,就用建造者模式解决盖房子的需求,不喜欢大城市的氛围,城市套路深,房价那么贵的,农村人回农村盖房子不香啊,自在的鸭皮

农村人建房子:这一过程为打地基、砌墙、封顶(农村说法:上楼板,上面;农村习俗,这天很热闹,有好吃有好喝,放礼花,砰砰砰····亲戚朋友,街坊邻居都到场,等我有钱了,天天盖房子)。北方人喜欢盖普通房子,南方人喜欢盖别墅,但是过程都一样

这里放个有趣的图,加深印象:

我是北方汉子,穷小子,诸葛家里的房子是这样子的,流泪:

什么是Java建造者模式

我老婆是湖南的,娘家的别墅是这样子的,是不是差距有点大:

什么是Java建造者模式

代码实现

测试

public class Client {
	public static void main(String[] args) {
		
		//盖普通房子
		CommonHouse commonHouse = new CommonHouse();
		//准备创建房子的指挥者(构造器模式)
		HouseDirector houseDirector = new HouseDirector(commonHouse);
		
		//完成盖房子,返回产品(普通房子)
		House house = houseDirector.constructHouse();
		
		//System.out.println("输出流程");
		
		System.out.println("--------------------------");
		//盖高楼
		HighBuilding highBuilding = new HighBuilding();
		//重置建造者(set模式)
		houseDirector.setHouseBuilder(highBuilding);
		//完成盖房子,返回产品(高楼)
		houseDirector.constructHouse();		
	}
}

输出:

普通房子打地基5米 普通房子砌墙10cm 普通房子屋顶


别墅的打地基20米 别墅的砌墙8米 别墅的透明屋顶

总结

  1. 优点是比较好理解,简单易操作。

  2. 设计的程序结构,过于简单,没有设计缓存层对象,程序的扩展和维护不好. 也就是说,这种设计方案,把产品(即:房子) 和 创建产品的过程(即:建房子流程) 封装在一起,耦合性增强了。

  3. 解决方案:将产品和产品建造过程解耦 => 建造者模式.

使用场景:

1、需要生成的对象具有复杂的内部结构。

2、需要生成的对象内部属性本身相互依赖。

注意事项和细节:

抽象工厂模式VS建造者模式: 抽象工厂模式实现对产品家族的创建,一个产品家族是这样的一系列产品:

具有不同分类维度的产品组合,采用抽象工厂模式不需要关心构建过程,只关心什么产品由什么工厂生产即可。而建造者模式则是要求按照指定的蓝图建造产品,它的主要目的是通过组装零配件而产生一个新产品

“什么是Java建造者模式”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

推荐阅读:
  1. Java描述设计模式(06):建造者模式
  2. java怎么实现建造者模式

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

java

上一篇:php如何实现网页版剪刀石头布游戏

下一篇:PHP实现文件上传下载的示例分析

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》