`
duolaaqian
  • 浏览: 14421 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

[初级]设计模式--建造者模式

阅读更多

 

/**
 * 建造者模式
 * 
 * 	将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
 * 
 * 	1、建造者接口,定义建造者需要提供的功能
 * 	2、指挥者类,定义了建造过程
 * 	3、具体建造者提供建造的具体实现
 * 
 * 优点:
 * 	1、客户端调用时不用知道内部细节,指定建造者即可
 * 	2、建造者之间是相互独立又可相互替换的,便于维护/扩展
 *
 * 与工厂模式的区别
 * 	工厂模式:侧重组装过程
 * 	建造者模式:侧重组装所需零件的生产过程
 * 
 * 工厂模式就像玩积木,原料都差不多,看你如何搭
 * 建造者模式像造汽车,整体框架都差不多,但是具体零件相差较大
 */
public class BuiderDemo01 {
	public static void main(String[] args) {
		ModuleDirector md1 = new ModuleDirector(new InternCoder());
		md1.createModule();
		ModuleDirector md2 = new ModuleDirector(new NormalCoder());
		md2.createModule();
		ModuleDirector md3 = new ModuleDirector(new GodlikeCoder());
		md3.createModule();
	}
}
/**
 * 模块建造者接口
 */
interface ModuleBuider{
	public void createJAVA();
	public void createJSP();
	public void createSQL();
}
/**
 * 指挥者,指挥建造者创建模块
 */
class ModuleDirector{
	private ModuleBuider mb;
	public ModuleDirector(ModuleBuider mb){
		this.mb = mb;
	}
	public void createModule(){
		mb.createJAVA();
		mb.createJSP();
		mb.createSQL();
	}
}

/**
 * 实习生
 */
class InternCoder implements ModuleBuider{
	@Override
	public void createJAVA() {
		System.out.println("实习生编写后台代码");
	}
	@Override
	public void createJSP() {
		System.out.println("实习生编写前台代码");
	}
	@Override
	public void createSQL() {
		System.out.println("实习生编写SQL语句");
	}
}
/**
 * 普通程序员
 */
class NormalCoder implements ModuleBuider{
	@Override
	public void createJAVA() {
		System.out.println("普通程序员编写后台代码");
	}
	@Override
	public void createJSP() {
		System.out.println("普通程序员编写前台代码");
	}
	@Override
	public void createSQL() {
		System.out.println("普通程序员编写SQL语句");
	}
}
/**
 * 大神
 */
class GodlikeCoder implements ModuleBuider{
	@Override
	public void createJAVA() {
		System.out.println("大神编写后台代码");
	}
	@Override
	public void createJSP() {
		System.out.println("大神编写前台代码");
	}
	@Override
	public void createSQL() {
		System.out.println("大神编写SQL语句");
	}
}

 运行结果:

实习生编写后台代码
实习生编写前台代码
实习生编写SQL语句
普通程序员编写后台代码
普通程序员编写前台代码
普通程序员编写SQL语句
大神编写后台代码
大神编写前台代码
大神编写SQL语句

 

 

 

分享到:
评论

相关推荐

    JAVA设计模式-设计模式公司出品

    8. 建造者模式(BUILDERPATTERN):建造者模式将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 此外,书中还提到了“六大设计原则”,这是设计模式背后的指导思想,包括: 1. 单一...

    Java设计模式之禅

    7. 建造者模式(Builder Pattern):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 8. 原型模式(Prototype Pattern):用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新...

    C/C++设计模式基础教程

    - **建造者模式**:将一个复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示。 - **原型模式**:通过复制现有的实例来创建新对象,而不是通过构造函数创建。 - **单例模式**:确保一个类只有一...

    java23种设计模式详细讲解

    创建型模式主要关注对象的创建,提供了灵活创建对象的方法,包括单例模式、工厂方法模式、抽象工厂模式、建造者模式、原型模式。 2. 结构型模式 结构型模式涉及如何组合类和对象以获得更大的结构。包括适配器模式、...

    研磨设计模式PDF

    1. 创建型模式(Creational Patterns):主要处理对象的创建,如单例模式(Singleton)、工厂模式(Factory Method)、抽象工厂模式(Abstract Factory)、建造者模式(Builder)和原型模式(Prototype)。...

    java开发设计模式

    - 建造者模式(Builder Pattern) - 原型模式(Prototype Pattern) 2. 结构型模式主要关注如何将类或对象结合在一起,形成更大的结构。它包括: - 适配器模式(Adapter Pattern) - 桥接模式(Bridge Pattern...

    您的设计模式

    建造者模式将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 11. 桥梁模式(Bridge Pattern) 桥梁模式将抽象部分与实现部分分离,使它们都可以独立地变化。它通过提供抽象化和实现...

    Java中23种经典设计模式(附代码)

    - **建造者模式**:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 - **单例模式**:保证一个类仅有一个实例,并提供一个全局访问点。 - **原型模式**:通过复制已有对象来创建新...

    一天学通Java23种设计模式

    建造者模式则用于创建复杂的对象,通过步骤分解,使得构造过程更加可控。 适配器模式帮助两个不兼容的接口协同工作,而代理模式可以在调用原对象的同时添加额外功能,如缓存或权限控制。装饰器模式在不改变原有类的...

    Java设计模式经典搞笑珍藏

    10. **建造者模式(BuilderPattern)**:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 11. **桥梁模式(BridgePattern)**:将抽象部分与它的实现部分分离,使它们都可以独立地...

    23种GoF设计模式Java版.pdf

    建造者模式允许用户逐步构建一个复杂的对象。 **2.4 原型模式** - 通过复制一个已有实例来创建新对象,而不是通过创建对象的过程。 #### 2. 结构型模式 **3.1 外观模式** - 为子系统中的一组接口提供一个一致的...

    java设计模式(电子书)

    第10章建造者模式(BUILDER PATTERN):将复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示。建造者模式在创建对象的过程中提供了更高的灵活性。 第11章桥梁模式(BRIDGE PATTERN):将抽象部分...

    PHP面向对象设计模式详解

    内容概要:本文详细阐述了23种PHP面向对象设计模式,包括但不限于工厂模式、单例模式、建造者模式、原型模式、适配器模式等。每种模式均配有UML类图和相应的PHP示例代码。并通过具体生活中的实例来辅助理解每种模式...

Global site tag (gtag.js) - Google Analytics