生成器模式
1.定义
将复杂对象的构件和它的表示分离,使得同样的构建过程可以创建不同的表示。
2.示例代码
要实现同样的构建过程可以创建不同的表现,那么一个自然的思路就是先把构建过程独立出来,在生成器模式中把它称为指导者,由它来指导装配过程,但是不负责每步具体实现,具体实现每步的对象,在生成器模式中称为生成器。
/*被构件的产品对象接口*/ public interface Product{ //产品对象的一些操作 public String getProductName(); } /*产品对象鞋子*/ public class Shoes implements Product{ //产品对象的一些操作 public String getProductName(){ System.out.println("产品:" + "Shoes"); } } /*产品对象衣服*/ public class Clothes implements Product{ //产品对象的一些操作 public String getProductName(){ System.out.println("产品:" + "Clothes"); } }
/*生成器接口,定义创建Product对象所需的各个部件的操作方法*/ public interface Bulider{ //示意方法,构件某个部件 public void buildPart(); } /*鞋子具体生成器实现对象*/ public class ShoesBuilder implements Bulider{ //生成器最终构建的产品对象 private Product resultProduct; //获取生成器最终构建的产品对象 public Product getResult(){ return resultProduct; } //构建具体产品的详细步骤 public void buildPart(){ //构建某个部件的功能处理 resultProduct = new Shoes(); } } /*衣服具体生成器实现对象*/ public class ChothesBuilder implements Bulider{ //生成器最终构建的产品对象 private Product resultProduct; //获取生成器最终构建的产品对象 public Product getResult(){ return resultProduct; } //构建具体产品的详细步骤 public void buildPart(){ //构建某个部件的功能处理 resultProduct = new Chothes(); } }
/*指导者使用生成器接口来构建产品对象*/ public class Director{ //持有当前生成器对象 private Builder builder; //构造方法传入生成器对象 public Director(Builder builder){ this.builder = builder; } //指导生成器构建最终的产品对象 public void construct(){ builder.buildPart(); } }
/*客户调用生成器生成不同的产品*/ public class Client{ public static void main(String args[]){ //创建要生产的产品生成器 Builder builder = new ShoesBuilder(); //创建指导对象 Director director = new Director(builder); //生产产品 director.construct(); builder.getResult().getProductName(); } }
3.实际应用
生成器模式主要功能是构建复杂产品,而且是细化的,分步骤的构建产品,更为重要的是,这个构建的过程是统一的,固定不变的,变化的部分放到生成器里边,只需要配置不同的生成器,那么同样的构建过程就能构建出不同的产品。
生成器模式的本质:分离整体构建算法和部件构造
相关推荐
【设计模式】- 生成器模式(Builder)(csdn)————程序
iOS设计模式-生成器 理论:http://blog.csdn.net/z251257144/article/details/7484835
设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段...
3.2 Builder(生成器)—对象创建型模式 633.3 Factory Method(工厂方法)—对象创建型模式 70 3.4 Prototype(原型)—对象创建型模式 87 3.5 Singleton(单件)—对象创建型模式 84 3.6 创建型模式的讨论 89 第 4...
23种设计模式之生成器模式对生成器模式进行了简单的介绍,并附带了例子程序,和大家分享
动软代码生成器,自动生成设计模式代码, 动软代码生成器,自动生成设计模式代码 动软代码生成器,自动生成设计模式代码 动软代码生成器,自动生成设计模式代码
设计模式综合项目实战X-Gen生成器 PPT
设计模式习题答案-抽象工厂、生成器.ppt
JavaScript设计模式之构造器模式(生成器模式)定义与用法实例分析.docx
3.2 BUILDER(生成器)——对象创建型模式 3.3 FACTORY METHOD(工厂方法)——对象创建型模式 3.4 PROTOTYPE(原型)——对象创建型模式 3.5 SINGLETON(单件)——对象创建型模式 第四章 结构型模式 4.1 ADAPTER...
【例2.5】生成器模式-房屋信息 【例2.6】单例模式-互联网连接 【例3.2】组合模式-五子棋代码 【例3.3】组合模式-空军指挥系统 【例3.4】组合模式-世界问候语 【例3.7】类适配器模式-客户信息验证 ...
java设计模式之生成器模式,希望对大家有所帮助。
C#面向对象设计模式纵横谈(4):Builder 生成器模式(创建型模式) 体验课程
生成器模式代码示例,使用JAVA代码演示。配有说明文档,有助于对生成器模式的理解。
2021年全面详解设计模式中的生成器模式,图文并茂,面试必备技能!
1.1 什么是设计模式 2 1.2 Smalltalk MVC中的设计模式 3 1.3 描述设计模式 4 1.4 设计模式的编目 5 1.5 组织编目 7 1.6 设计模式怎样解决设计问题 8 1.6.1 寻找合适的对象 8 1.6.2 决定对象的粒度 9 1.6.3 指定对象...
建造模式 Build 生成器模式 设计模式
生成器模式源代码 博客中设计模式文章代码
在《Head First Design Patterns》文中是这么介绍生成器模式的,“封装一个产品的构造过程,并允许按步骤构造”,感觉说得不是很清楚。而在网上查找相关资料是这么解释的,建造者模式(Builder Pattern)使用多个简单...