建造者模式是设计模式中另一个重要的创建对象的方法模式。它的特点主要是稳定了创建的过程,比如下面的例子中就是每个产品的创建过程都包括创建A部分和创建B部分,但不同的builder可以有自己的方式去创建产品,比如不同的房地产商可以建不同的房子【大房子、小房子】,只要建造过程稳定一致就可以了。
建造者模式类图:
建造者接口:
package builderPattern;
public interface Builder {
Product getProduct();
Object buildProductPartA();
Object buildProductPartB();
}
具体建造者:
public class ConcreteBuilder1 implements Builder{
public Object buildProductPartA() {
System.out.println("build Big ProductPartA with tools .");
Object object = new Object();
return object;
}
public Object buildProductPartB() {
System.out.println("build Big ProductPartB with tools .");
Object object = new Object();
return object;
}
public Product getProduct() {
// TODO Auto-generated method stub
return new Product(buildProductPartA(),buildProductPartB());
}
}
package builderPattern;
public class ConcreteBuilder2 implements Builder{
public Object buildProductPartA() {
System.out.println("build Small ProductPartA with tools .");
Object object = new Object();
return object;
}
public Object buildProductPartB() {
System.out.println("build Small ProductPartB with tools .");
Object object = new Object();
return object;
}
public Product getProduct() {
// TODO Auto-generated method stub
return new Product(buildProductPartA(),buildProductPartB());
}
}
具体产品:
package builderPattern;
public class Product {
private Object partA;
private Object partB;
public Product(Object partA,Object partB){
this.partA = partA;
this.partB = partB;
}
}
指挥者:
package builderPattern;
public class Director {
private Builder builder;
public Director(Builder builder){
this.builder = builder;
}
public Product getProduct(){
return builder.getProduct();
}
}
测试类:
package builderPattern;
public class BuilderTest {
public static void main(String[] args){
Builder builder = new ConcreteBuilder1();
Director director = new Director(builder);
director.getProduct();
System.out.println("建造另外一件产品");
director = new Director(builder);
Builder builder2 = new ConcreteBuilder2();
director.getProduct();
}
}
说明:说明:产品这块当然也可以通过抽象出一个抽象类或接口了,只要这一类产品创建过程一样,都可以通过建造者模式去创建。
- 大小: 28.8 KB
分享到:
相关推荐
Java设计模式菜鸟系列教程 本教程对Java 23种设计模式进行了总结,涵盖了策略模式、观察者模式、装饰者模式、工厂方法模式、抽象工厂模式、单例模式、命令模式、适配器模式、外观模式、模板方法模式、迭代器模式、...
本资源“设计模式学习经典篇之菜鸟篇”旨在为初学者提供一个全面而通俗易懂的设计模式学习路径。 设计模式的核心在于重用已验证的解决方案,以提高代码的可读性、可维护性和可扩展性。根据GOF(Gamma, Helm, ...
设计模式是软件工程中的一种最佳实践,用于解决在软件开发过程中常见的问题,提供了一套可重用的解决方案。这些模式都是经验丰富的软件开发者在长期实践中总结出来的,它们可以帮助我们写出更加灵活、可维护和可扩展...
设计模式是软件开发中的一种重要概念,它是一套经过验证的、通用的解决方案,用来解决在软件设计过程中频繁出现的问题。设计模式的种类主要分为三类:创建型模式、结构型模式和行为型模式。 创建型模式关注的是对象...
4. 建造者模式(Builder Pattern):将一个复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示。 5. 原型模式(Prototype Pattern):通过复制已有对象来创建新对象,减少创建新对象的开销。 6. ...
3、建造者模式 4、观察者模式 5、抽象工厂模式 6、状态模式 7、适配器模式 8、备忘录模式 9、组合模式 10、简单工厂模式 11、迭代器模式 12、单例模式 13、桥接模式 14、命令模式 15、职责链模式 16、中介者模式 17...
4. **建造者模式**:将一个复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示。 5. **原型模式**:通过复制一个已有实例来创建新的实例,而不是通过构造函数进行实例化。 ### 结构型模式 6. **...
总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式...
本章系Java之美[从菜鸟到高手演变]系列之设计模式,我们会以理论与实践相结合的方式来进行本章的学习,希望广大程序爱好者,学好设计模式,做一个优秀的软件工程师! 企业级项目实战(带源码)地址: 23种模式java实现...
- 建造者模式(Builder):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。它适用于创建复杂对象的场景,比如通过不同参数构建同一种产品。 - 原型模式(Prototype):用原型实例指定...
建造者模式 结构模式 代理模式 外观模式 适配器模式 装饰模式 组合模式 享元模式 桥接模式 行为模式 观察者模式 模板方法模式 策略模式 命令模式 调停者模式 备忘录模式 解释器模式 迭代器模式 状态模式 责任链...
1. 创建型模式:单例(Singleton)、工厂方法(Factory Method)、抽象工厂(Abstract Factory)、建造者(Builder)、原型(Prototype)。 2. 结构型模式:适配器(Adapter)、装饰器(Decorator)、代理(Proxy)...
可能包括单例模式、工厂模式、观察者模式、装饰器模式、适配器模式、策略模式、建造者模式、代理模式等。 2. **文档**:可能有README文件,解释项目的背景、目标、实现的设计模式以及如何运行项目。还可能包含设计...
4. 设计模式:工厂模式、单例模式、建造者模式、观察者模式等23种设计模式的应用与理解。 5. Spring框架:IoC(控制反转)、AOP(面向切面编程)、Spring Boot、Spring Cloud等相关知识。 三、Java并发编程 1. 并发...
可能会讨论到设计模式,如工厂模式、单例模式、建造者模式、观察者模式等。 3. **JVM**:Java虚拟机的工作原理,包括类加载机制、内存模型(堆、栈、方法区、本地方法栈)、JVM优化和调优策略,以及如何分析和解决...