建造模式——将一个复杂对象的构造与它的表示分离,使得同样的构造过程可以创建不同的表示。(我的理解就是做一个统一的构造函数入口)当要生成的产品有复杂的内部结构,需要解耦。下面是建造模式的组成
- 抽象建造者角色(用于规范产品对象的各个组成成分的建造,独立于应用程序的业务逻辑)
- 具体建造者角色(与应用程序紧密相连的类,它们在指导者调用下创建产品实例,这个角色在实现抽象建造者角色提供的方法前提下,达到完成产品组装,提供成品的功能)
- 指导者角色(调用具体建造者角色创建产品对象,指导者没有产品类的具体知识,真正拥有产品类的具体知识的是具体建造者对象)
- 产品角色(建造中的复杂对象)
1,抽象建造者角色
interface PersonBuilder{ void buildHead(); void buildBody(); Person buildPerson(); }
2,具体建造者角色
class ManBuilder implements PersonBuilder{ Person person; public ManBuilder(){ person = new Man(); } public void buildHead(){person.setHead("男性头部");} public void buildBody(){person.setBody("男性身体");} public Person buildPerson(){return person;} }
3,指导者角色(调用建造者方法创建产品)
class PersonDirector{ public Person constructPerson(PersonBuilder pd){ pd.buildHead(); pd.buildBody(); return pd.buildPerson(); } }
4,产品角色
class Person{ private String head; private String body; public String getHead() { return head; } public void setHead(String head) { this.head = head; } public String getBody() { return body; } public void setBody(String body) { this.body = body; } } class Man extends Person{};
使用方法如下:
public class Test { public static void main(String[] args) { //创建指导者对象和建造者角色,将建造者角色传入指导者对象进行配置, //指导者调用建造者方法创建产品 PersonDirector pd = new PersonDirector(); Person person = pd.constructPerson(new ManBuilder()); System.out.println(person.getHead()); System.out.println(person.getBody()); } }
建造模式可以使产品内部表象独立变化,原本的工厂方法模式中,产品内部的表象由产品自身决定。而在建造模式中是由建造者来负责。这样定义一个新的具体建造者角色就可以改变产品的内部表象。
建造模式将复杂的内部创建封装在内部,对于外部调用的人来说,只需要传入建造者与建造工具,对于内部如何实现不需关心。
相关推荐
建造者模式是一种结构型设计模式,它允许我们分步骤创建复杂对象,而无需暴露构建过程的内部细节。这种模式在Java编程中非常常见,尤其是在处理需要多种构建方式或需要隔离对象构造过程的场景。 建造者模式的核心...
通过阅读《设计模式——GFour》,开发者可以提升自己的设计能力,学习如何写出更加优雅、可维护的代码。这本书对于任何想要提升软件设计水平的人来说都是一份宝贵的资源,无论你是初学者还是经验丰富的专业开发人员...
设计模式是软件工程中的一种重要概念,它代表了在特定情境下解决常见问题的最佳实践。刘伟先生在讲解设计模式时,通常会深入浅出地介绍这些模式的...学习设计模式不仅可以提升个人技能,也有利于团队间的沟通和协作。
设计模式是一种在软件设计中被广泛认可的解决特定问题、经过良好记录并可重用的解决方案。它们代表了在各种编程环境中反复出现的问题的最佳实践。原版的设计模式通常指的是最初由“Gang of Four”(GoF)在他们的...
在《设计模式——可复用面向对象软件的基础》这本书中,作者Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides(合称GoF)首次提出了23种面向对象设计模式。这些模式涵盖了不同设计场景,如创建型模式、...
"设计模式之美——教你写出高质量代码"这个主题旨在帮助开发者更好地理解和应用设计模式,从而提升代码的质量和可维护性。设计模式不仅对面试有所帮助,也是职场发展中的必备技能,无论你使用哪种开发语言。 设计...
### JAVA设计模式总结之23种设计模式及六大...通过对这些设计模式的学习和应用,开发者可以更好地组织代码,使其更具有灵活性、可扩展性和可维护性。在实际开发中,根据项目的具体需求选择合适的设计模式是非常重要的。
《设计模式——可复用面向对象软件的基础》是IT领域中的经典著作,由Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides四位大师合著,他们因此被誉为GoF(Gang of Four)。这本书提出了面向对象设计的23种...
学习和理解这些设计模式是提升编程技能的关键步骤。它们不仅提供了解决复杂问题的蓝图,还能帮助我们写出更清晰、更易于维护的代码。作为新手,通过实践这些模式,可以更好地理解和掌握面向对象设计的原则,例如单一...
《设计模式--基于C#的工程化实现及扩展》是一本深入探讨软件设计模式的书籍,作者王翔通过C#语言来阐述各种设计模式的工程化应用和拓展。设计模式是软件开发中的一种最佳实践,它总结了在特定场景下解决常见问题的...
本资料“《java设计模式》课后习题模拟试题解答——刘伟.zip”主要涵盖了Java设计模式的学习与应用,特别是针对刘伟教授的相关课程的课后习题及模拟试题的解答。 设计模式分为三大类:创建型、结构型和行为型模式。...
### 设计模式与泡MM——设计模式入门教程 #### 一、创建型模式 ##### 1、FACTORY(工厂模式) 工厂模式的核心在于定义了一个创建对象的接口,但允许子类决定实例化哪一个类。工厂模式让类的实例化延迟到子类中...
《Java与模式——源码》这个主题涉及到的是Java编程语言中的设计模式应用,以及如何通过源代码来理解和学习这些模式。设计模式是软件工程中的一种最佳实践,它们是解决常见问题的经验总结,使得代码更易读、易维护、...
C#设计模式(23种设计模式) 1. 单件模式(Singleton Pattern) 2. 抽象工厂(Abstract Factory) 3. 建造者模式(Builder) 4. 工厂方法模式(Factory Method) 5. 原型模式(Prototype) 结构型: 6. 适配器...
本书《设计模式可复用面向对象软件的基础(C++)》是针对这一主题的深度探讨,特别适合C++开发者学习。 首先,我们需要理解设计模式的基本分类。设计模式通常分为三类:创建型模式、结构型模式和行为型模式。创建型...
总结来说,Java的设计模式——建造者模式在Android开发中扮演着重要角色,它帮助我们构造复杂对象,提供了一种模块化、易扩展的代码结构,提高了代码的可读性和可维护性。通过理解并熟练运用建造者模式,开发者可以...
**PHP设计模式介绍** 在PHP编程领域,设计模式是一种经过时间考验、被广泛接受的解决方案模板,用于解决常见的...通过学习和实践PHP设计模式,你可以更高效地组织代码,提升自己的编程思维,从而攀登PHP编程的高峰。
通过学习和理解这些代码,你可以更好地掌握如何在实际项目中应用设计模式,提升代码质量和可维护性。每一个设计模式都有其适用场景,理解其背后的意图和目的,能够帮助你在遇到类似问题时,自然地想到使用相应的设计...