建造模式是对象的创建模式。
建造模式可以将一个产品的内部表象与产品的生成过程分割开来,从而可以使一个建造过程生成具有不同的内部表象的产品对象。
建造者(Bulider):给出一个抽象接口,以规范产品对象的各个组成成分的建造。一般而言,此接口独立于应用程序的商业逻辑。模式中直接创建产品对象的是具体建造者(ConcreteBuilder)角色。具体建造者类必须实现这个接口所要求的建造方法和结果返回方法。
具体建造者(ConcreteBuilder):担任这个角色的是与应用程序紧密相关的一些类,它们在应用程序调用下创建产品的实例。这个角色要完成的任务包括:
1.实现抽象建造者Builder所声明的接口,给出一步一步地完成创建产品实例的操作。
2.在建造过程完成后,提供产品的实例。
导演者(Director):担任这个角色的类调用具体建造者以创建产品对象。应当指出的是,导演者角色并没有产品类的具体知识,真正拥有产品类的具体知识的是具体建造者角色。
产品:产品(Product)是建造中的复杂对象。一般来说,一个系统中会有>=1个产品类,而且这些产品类并不一定有共同的接口,而且完全是不相关联的。
package org.liujia.basic.designpatterns.anotherbuilder; public class Director { private Builder builder; public void construct(){ builder = new ConcreteBuilder(); //建造零件 builder.buildPart1(); builder.buildPart2(); //获得产品 Product product = builder.retrieveResult(); } }
package org.liujia.basic.designpatterns.anotherbuilder; public abstract class Builder { /**建造第一部分 * */ public abstract void buildPart1(); /**建造第二部分 * */ public abstract void buildPart2(); /**返回结果对象 * */ public abstract Product retrieveResult(); }
package org.liujia.basic.designpatterns.anotherbuilder; public class ConcreteBuilder extends Builder{ private Product product = new Product(); @Override public void buildPart1() { // 建造第一部分 如:product.name=xxxxxx; } @Override public void buildPart2() { // 建造第二部分 } @Override public Product retrieveResult() { return product; } }
package org.liujia.basic.designpatterns.anotherbuilder; public class Product { //Product的一些属性 }
如果有多个产品类的话,就多写几个ConcreteBuilder ,每个ConcreterBuilder生成对应的产品。
每个产品类都实现一个共同的抽象接口(Product),这样retrieveProduct的返回值都可以写成Product,但是却能获得不同的产品。
简化后:
简化后Director和抽象的Builder被省略掉。
package org.liujia.basic.designpatterns.builder.simplifiedeidtion; public class Client { private static Builder builder ; public static void main(String[] args) { builder = new Builder() ; builder.construct(); Product product = builder.retrieveResult(); } }
package org.liujia.basic.designpatterns.builder.simplifiedeidtion; public class Builder { private Product product = new Product() ; public void buildPart1(){ } public void buildPart2(){ } public Product retrieveResult(){ return product; } public void construct(){ buildPart1(); buildPart2(); } }
package org.liujia.basic.designpatterns.builder.simplifiedeidtion; public class Product { }
仅作为笔记,并给不懂的人做个参考。牛B的人就不要看了。
相关推荐
4. 建造者模式:将复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示。 5. 原型模式:通过复制已有对象来创建新对象。 三、结构型模式 1. 代理模式:为其他对象提供一种代理以控制对这个对象的...
在《JAVA与模式读书笔记》中,我们探讨的是Java编程语言与设计模式的结合应用,这对于深入理解面向对象编程和提升软件开发能力至关重要。设计模式是软件工程中的最佳实践,它们是解决常见问题的模板,可以提高代码的...
3. 建造者模式:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 4. 原型模式:通过复制现有的实例来创建新的实例,避免了重复的初始化操作。 5. 单例模式:确保一个类只有一个实例,...
本资料“图解Java设计模式笔记总结word版本”聚焦于通过图文并茂的方式,深入浅出地解析各种设计模式。以下是基于这个主题的详细知识点讲解: 1. **设计模式的分类** - **创建型模式**:如单例(Singleton)、工厂...
3. **建造者模式**:将复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示。适用于构建步骤多且复杂的情况。 4. **适配器模式**:将一个类的接口转换成客户希望的另一个接口,使得原本因接口不兼容...
本压缩包"计算机后端-Java-图解java设计模式笔记"提供了对Java设计模式的深入理解,通过图形化的方式帮助开发者更好地理解和应用这些模式。 1. **单例模式**:保证一个类只有一个实例,并提供一个全局访问点。常见...
7. **建造者模式**:将复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。`BuilderPattern.java`可能是示例代码,笔记会阐述如何使用建造者构建对象。 8. **策略模式**:定义一系列的算法,并...
4. 建造者模式(Builder):将复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示。在Java中,Builder模式常用于构造复杂的对象,如StringBuilder。 5. 适配器模式(Adapter):将一个类的接口转换...
4. **构造器模式**(也称为建造者模式):将复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示。它通常用于创建具有多个构建步骤的对象。 5. **工厂方法模式**:定义一个用于创建对象的接口,让...
3. 建造者模式(Builder Pattern):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 4. 原型模式(Prototype Pattern):通过复制一个现有的实例来创建新的实例,用于减少创建对象的...
4. **建造者模式(Builder)**:将一个复杂对象的构建与其表示分离,使同样的构建过程可以创建不同的表示。 5. **原型模式(Prototype)**:通过复制已有对象来创建新对象。 **结构型模式**: 1. **代理模式(Proxy...
建造者模式将复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示。在Java中,通过构建器和导演角色,我们可以更灵活地创建对象。 五、原型模式 原型模式允许用原型实例来创建新对象,通过克隆已有...
- 建造者模式:将复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 - 原型模式:通过复制已有对象来创建新对象。 2. 结构型模式:这类模式关注如何组合类和对象以构建更大的结构。例如: ...
4. **建造者模式**:将复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示。 5. **装饰器模式**:动态地给一个对象添加一些额外的职责,提供了比继承更具弹性的扩展对象功能的方式。 6. **代理...
1. 创建型模式:单例、工厂、抽象工厂、建造者、原型等模式。 2. 结构型模式:适配器、装饰器、代理、桥接、组合、外观、享元等模式。 3. 行为型模式:观察者、模板方法、策略、状态、职责链、命令、迭代器、备忘录...
1) 内容包括: 设计模式七大原则(单一职责、接口隔离、依赖倒转、里氏替换、开闭原则、迪米特法则、合成复用)、UML类图(类的依赖、泛化和实现、...:单例模式(8种实现)、抽象工厂模式、原型模式、建造者模式、工厂模式...
后续章节会继续深入探讨其他六大原则,以及23种经典设计模式,如工厂模式、单例模式、建造者模式、观察者模式等。这些模式是软件开发中的常用工具,掌握它们对于提升软件工程的实践能力至关重要。此外,这份笔记还会...
4. **建造者模式**:将复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示。 5. **原型模式**:用原型实例指定创建对象的种类,并通过复制这些原型创建新的对象。 6. **适配器模式**:将一个类的...
4. **建造者模式**:将一个复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示。在Java中,`Builder`类用于构建复杂的对象结构。 5. **原型模式**:用原型实例指定创建对象的种类,并且通过复制...