首页 > 其他分享 >设计模式回顾之九:建造者模式(Builder)

设计模式回顾之九:建造者模式(Builder)

时间:2023-09-14 13:03:56浏览次数:40  
标签:回顾 builder public buildPartB void 设计模式 AbstractBuilder Builder buildPartA


设计模式回顾系列文章:主要针对工作中常用常见的设计模式进行整理、总结,同时分享以供大家拍砖。

------------------------------------------------

建造者模式(Builder)

将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。

 

适用于:

当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时,当构造过程必须允许被构造的对象有不同的表示时。

 

程序实现:

抽象类:

public abstract class AbstractBuilder {
	abstract public void buildPartA();
	abstract public void buildPartB();
	abstract public void buildPartC();
}

实现类:

public class ConcreteBuilder extends AbstractBuilder{
	@Override
	public void buildPartA() {
		System.out.println("buildPartA!");
	}
	@Override
	public void buildPartB() {
		System.out.println("buildPartB!");
	}
	@Override
	public void buildPartC() {
		System.out.println("buildPartC!");
	}
}

组装类:

public class Director {
	public void contruct(AbstractBuilder builder){
		builder.buildPartA();
		//一些内部逻辑决定构建那些部分
		if(true){
			builder.buildPartB();
		}
		if(0<1){
			builder.buildPartC();
		}
	}
}

客户端:

public class Client {
	public static void main(String[] args) {
		AbstractBuilder builder=new ConcreteBuilder();
		Director director=new Director();
		director.contruct(builder);
	}
}

举例:

其实日常工作中经常使用建造者模式,比如最简单的:StringBuffer和StringBuilder.

标签:回顾,builder,public,buildPartB,void,设计模式,AbstractBuilder,Builder,buildPartA
From: https://blog.51cto.com/u_6978506/7468952

相关文章

  • 回顾2023百度云智大会:人工智能的未来之路
    原创|文BFT机器人在2023年的百度云智大会上,各界的科技专家、学者、企业家和创新者再次齐聚一堂,共同探讨和分享最新的人工智能、大数据、云计算等前沿技术和行业趋势。此次大会以"探索未来科技趋势"为主题,旨在引领行业对未来发展方向的思考,并推动科技创新迈上新的台阶。会议开幕......
  • 设计模式之:1单例模式
    1 单例模式1.1     引言单例模式就是保证在整个应用程序的生命周期中,在任何时刻,被指定的类只有一个实例,并为客户程序提供一个获取该实例的全局访问点。1.2     经典模式publicclassSingleton{privatestaticSingletoninstance;private......
  • 【设计模式】状态模式State:通过有限状态机监控功能的 "状态变化"
    (目录)状态模式的应用场景非常广泛,比如:线上购物订单、手机支付、音乐播放器、游戏、工作流引擎等场景。状态模式设计的初衷是应对同一个对象里不同状态变化时的不同行为的变化。模式原理原始定义是:允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了自己的......
  • 【设计模式】策略模式Strategy:解决不同活动策略营销推荐场景
    (目录)模板方法模式能帮助我们进行公有方法的抽取,起到快速复用和扩展的作用。另一种快速复用和扩展代码的行为型模式:策略模式。策略模式在实际的开发中很常用,最常见的应用场景是利用它来替换过多的if-else嵌套的逻辑判断。除此之外,还能结合工厂模式给客户端提供非常灵活的使......
  • 设计模式-观察者模式
    设计模式提供了软件开发过程中的一些最佳实践,可以帮助我们解决常见的编程问题,提高软件的可维护性和可复用性,并使我们的代码更加健壮和灵活。设计模式可以带来以下好处:提高代码的可读性和可维护性、提高软件的可复用性、提高开发效率、提高系统的灵活性和可扩展性。今天我们讲一下观......
  • 《精通Python设计模式》 PDF电子书 +源码
    第1章工厂模式第2章建造者模式第3章其他创建型模式第4章适配器模式第5章装饰器模式第6章桥接模式第7章外观模式第8章其他结构型模式第9章职责链模式第10章命令模式第11章观察者模式第12章状态模式第13章其他行为型模式第14......
  • 设计模式-门面模式
    门面模式(文章目录)1、什么是门面模式  门面模式为子系统提供一组统一的接口,定义一组高层接口让子系统更易用。注意这里针对的是接口。  这个定义很简洁,我再进一步解释一下。  假设有一个系统A,提供了a、b、c、d四个接口。系统B完成某个业务功能,需要调用A系统的......
  • String、StringBuffer和StringBuilder的区别,ArrayList和linkedList的区别,HashMap和Has
    一、String、StringBuffer和StringBuilder的区别1.1相关介绍String是只读字符串,并不是基本数据类型,而是一个对象。从底层源码来看是一个final修饰的字符数组,所引用的字符串不能改变,一经定义无法再增删改。每次对String操作都会生成新的String对象。所以对于经常改变内容的字符串最......
  • 6. 前端设计模式之观察者模式
    使用观察者模式,我们可以将某些对象(观察者)订阅到另一个对象(可观察对象)。当一个事件发生时,可观察对象会通知它的所有观察者!这个模式出境的概率就比较高了,无论是在前端还是后端,都能见到它的身影,特别跟事件有关的场景。从定义看这个模式涉及到两种对象,一种可观察对象也就是观察的......
  • 设计模式-装饰器模式
    装饰器模式(文章目录)什么是装饰器模式  装饰器(Decorator)模式的定义:指在不改变现有对象结构的情况下,动态地给该对象增加一些职责(即增加其额外功能)的模式。为什么使用装饰器模式使用装饰者模式有如下好处:  1.避免了类爆炸问题,简化了设计  2.易于扩展,可以灵活组......