Design Patterns 创建模式 之 Builder
创建者模式
简单地说,就好象我要一座房子住,可是我不知道怎么盖(简单的砌墙,层次较低),也不知道怎么样设计(建几个房间,几个门好看,层次较高),于是我需要找一帮民工,他们会砌墙,还得找个设计师,他知道怎么设计,我还要确保民工听设计师的领导,而设计师本身也不干活,光是下命令,这里砌一堵墙,这里砌一扇门,这样民工开始建设,最后,我可以向民工要房子了。在这个过程中,设计师是什么也没有,除了他在脑子里的设计和命令,所以要房子也是跟民工要,记住了!
1 定义工人接口 民工
/**
* 工人接口,定义了各个工人所要进行的工所作。他们负责进行具体部件如窗户,地板的建造。
* 同时因为房子是民工建的,因此建设完成后由他把房子递交回房主
* @author poy
*/
public interface Builder {
public void makeWindow();
public void makeFloor();
public Room getRoom();
}
/**
* 民工。负责进行具体部件如窗户,地板的建造。
* 同时因为房子是民工建的,因此建设完成后由他把房子递交回房主
* @author poy
*/
public class Mingong implements Builder {
private String window="";
private String floor="";
public void makeWindow() {
window=new String("window");
}
public void makeFloor(){
floor=new String("floor");
}
// 回交房子给房主
public Room getRoom() {
if((!window.equals(""))&&(!floor.equals(""))) {
System.out.println("room ready!");
return new Room();
}
else return null;
}
}
2 定义设计师
/**
* 设计师。他知道房子应该怎么设计,但他不会自己去建造,而是指挥民工去建造。
* @author poy
*/
public class Designer {
// 指挥民工进行工作
public void order(Builder builder) {
builder.makeWindow();
builder.makeFloor();
}
}
3 房主
/**
* 房主。房主的任务就是聘请一个民工,一个设计师,
* 同时把民工给设计师指挥,督促设计师开展工作。最后从民工手上收房。
* @author poy
*
*/
public class Client {
public static void main(String[] args) {
Builder mingong = new Mingong();
Designer designer = new Designer();
designer.order(mingong);
mingong.getRoom();
}
}
分享到:
相关推荐
标题中的"DesignPatterns.pdf_objects_designpatterns_"暗示了这可能是一个关于面向对象设计模式的PDF文档,而描述中的"Design patterns elements of reusable objects"进一步确认了这一点。设计模式的核心理念在于...
- 建造者模式(Builder):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 - 原型模式(Prototype):用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 2. 结构...
设计模式是软件工程领域中的重要概念,源自于1994年由Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides四位杰出的软件工程师合著的经典书籍《设计模式:可复用面向对象软件的基础》(Design Patterns: ...
这个"DesignPatterns.zip"压缩包文件包含了一份英文版的设计模式资料,可能是由设计模式领域的四位知名专家——Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides,也就是常说的“四人组”所著的《设计模式...
After reading this book, you will be able to convincingly leverage these design patterns (factory pattern, builder pattern, prototype pattern, adapter pattern, facade pattern, decorator pattern, ...
We've tried hard to avoid both of these categories with Design Patterns Explained Simply. This book is fast and simple way to get the idea behind each of the 29 popular design patterns. The book is ...
《Java 企业设计模式》(Java Enterprise Design Patterns) 是一本深入探讨如何在Java环境中应用设计模式的著作。这本书的核心目标是提高软件开发的效率、可维护性和可扩展性,通过介绍一系列已被广泛验证的设计模式...
- **构建者模式(Builder)**:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 - **原型模式(Prototype)**:用原型实例指定创建对象的种类,并且通过复制这些原型创建新的对象。 #...
其中,创建型模式如工厂方法(Factory Method)、抽象工厂(Abstract Factory)、单例(Singleton)和建造者(Builder)模式等,用于创建对象时提供更灵活和优雅的解决方案。结构型模式如适配器(Adapter)、外观...
1. 创建型模式:这类模式主要关注对象的创建过程,如单例模式(Singleton)、工厂模式(Factory Method)、抽象工厂模式(Abstract Factory)、建造者模式(Builder)和原型模式(Prototype)。这些模式可以帮助我们...
本书“Scala Design Patterns”结合了理论与实践,通过一系列的示例代码,帮助开发者理解和应用设计模式。这些源码是书中讲解内容的具体实现,旨在帮助读者深入理解每个模式的工作原理。 1. 工厂模式(Factory ...
4. **建造者模式**(Builder):将一个复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示。 5. **原型模式**(Prototype):通过复制已有对象来创建新对象。 **结构型模式**关注如何将类或对象...
**设计模式**(Design Patterns)是软件工程中的一个重要概念,它是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。本章节将从多个角度对设计模式进行深入探讨。 #### 二、设计模式的基本定义 ...
《Head First Design Patterns》是设计模式领域中一本非常知名的书籍,尤其适合初学者入门。这本书以其独特的视觉风格和易于理解的讲解方式,帮助读者深入理解设计模式的核心概念和实际应用。Part2部分主要涵盖了...
Learn how to implement design patterns in Java: each pattern in Java Design Patterns is a complete implementation and the output is generated using Eclipse, making the code accessible to all....
这个压缩包“java-design-patterns-master”显然是一个专注于Java设计模式的学习资源,旨在帮助开发者深入理解和应用这些模式。下面我们将详细探讨Java设计模式及其在实际开发中的应用。 1. **单例模式(Singleton...
《Head First Design Patterns》是一本深受开发者喜爱的设计模式教程,英文版的影印版本提供了清晰易读的阅读体验。设计模式是软件工程中的一种最佳实践,它总结了在特定上下文中解决问题的常见方法,旨在提高代码的...