- 浏览: 91466 次
- 性别:
- 来自: 上海
文章分类
最新评论
您想要建立一个迷宫产生程式,迷宫使用二维阵列来定义,0表示道路,1表示墙,2表示宝物,根据所定义的二维迷宫阵列,您想要程式自动产生各种不同材质的迷宫,例如砖墙迷宫,钻石迷宫等等。
您可以在程式中定义两个角色,一个是指导迷宫建立的Director角色,一个是按照指导者指示建立迷宫的Builder角色,Director根据定义的迷宫阵列来指导Builder,只要更换Builder,就可以完成不同材质的迷宫。
MazeDirector.java
IMazeBuilder.java
SoliderMazeBuilder.java
DiamondMazeBuilder.java
简单来说,建筑者模式适用的场合,在于使得您可以依赖抽象的建筑蓝图,而实际建造时可以使用不同的实例,这是其之所以命为Builder的原因。
文章转自 http://www.riabook.cn/doc/designpattern/BuilderPattern.htm
您可以在程式中定义两个角色,一个是指导迷宫建立的Director角色,一个是按照指导者指示建立迷宫的Builder角色,Director根据定义的迷宫阵列来指导Builder,只要更换Builder,就可以完成不同材质的迷宫。
MazeDirector.java
public class MazeDirector { private int[][] maze; private IMazeBuilder mazeBuilder; public void setMaze(int[][] maze) { this.maze = maze; } public void setMazeBuilder(IMazeBuilder mazeBuilder) { this.mazeBuilder = mazeBuilder; } public void buildMaze() { for(int i = 0; i < maze.length; i++) { for(int j = 0; j < maze[i].length; j++) { // 由于mazeBuilder是IMazeBuilder型态 // 所以无论Builder实例为何,这边的程式都无需变动 switch (maze[i][j]) { case 0: mazeBuilder.createRoadBloc(); break; case 1: mazeBuilder.createWallBlock(); break; case 2: mazeBuilder. createTreasureBlock(); break; default: System.out.println("undefined"); } } mazeBuilder.nextRow(); } } }
IMazeBuilder.java
public interface IMazeBuilder { public void createRoadBlock(); public void createWallBlock(); public void createTreasureBlock(); public void nextRow(); }
SoliderMazeBuilder.java
public class SolidMazeBuilder implements IMazeBuilder { public void createWallBlock() { System.out.print("█"); } public void createRoadBlock() { System.out.print(" "); } public void createTreasureBlock() { System.out.print("$ "); } public void nextRow() { System.out.println(); } }
DiamondMazeBuilder.java
public class DiamondMazeBuilder implements IMazeBuilder { public void createWallBlock() { System.out.print("◇"); } public void createRoadBlock() { System.out.print(" "); } public void createTreasureBlock() { System.out.print("* "); } public void nextRow() { System.out.println(); } }
简单来说,建筑者模式适用的场合,在于使得您可以依赖抽象的建筑蓝图,而实际建造时可以使用不同的实例,这是其之所以命为Builder的原因。
文章转自 http://www.riabook.cn/doc/designpattern/BuilderPattern.htm
发表评论
-
小项目
2021-03-25 08:52 275小项目源码 -
开发流程参考
2017-09-28 16:19 0软件开发周期流程 -
eclipse svn icon
2017-04-26 16:31 0... -
tomcat 用户角色设置
2017-04-26 15:06 0tomcat-users.xml <role role ... -
linux
2017-02-06 18:17 0shutdown -h now 立马关机 shutdown - ... -
简单框架
2016-11-16 18:14 0简单框架 单机使用 tomcat7热部署 tomcat7:re ... -
tomcat
2016-10-25 14:12 0#!/bin/sh # description: 启动tom ... -
yahoo legal 14
2016-10-14 09:43 300Web应用性能优化黄金法 ... -
事务隔离级别
2016-09-27 17:27 0Read Uncommitted(读取未提交内容) ... -
Docker
2016-08-06 22:07 0http://m.open-open.com/m/lib/vi ... -
eclipse插件link方法
2016-04-09 17:40 0第一步:将各个插件单独防止在相应的插件目录中,目录可以在任何位 ... -
谷歌书签
2016-02-25 16:33 0谷歌书签地址连接 http://www.itnose.net ... -
自己的测试项目
2015-12-28 17:07 0自己的测试项目 -
test
2015-08-03 22:10 01.刷新页面是否调用getuserinfo 2.getuser ... -
内存缓存(in-memory cache)
2013-11-30 11:12 2211缓存原来作用是提高数据库访问性能。但是缓存不是数据库遮羞布,架 ... -
科普知识
2013-11-14 16:52 408密钥是一种参数,它是在明文转换为密文或将密文转换为明文的算法中 ... -
eclipse
2013-06-17 10:19 560删除工程路径 eclipse\configuration\.s ... -
svn
2013-04-21 14:50 382下载并安装tigris svn server 创建中心库 s ... -
设计论
2012-12-28 11:45 621软件的开发 离不开设计 万不可盲目编写代码 1.在草稿上先思考 ... -
问题查询技巧
2012-12-20 17:15 597eclipse 文件check out搜索会受影响 查不出表 ...
相关推荐
DesignPattern项目是设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。 设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发...
设计模式是软件工程中的一种最佳实践,用于解决在软件设计中常见的...以上就是这个DesignPattern小Demo中可能会涵盖的设计模式,通过这些模式的实例,你可以更好地理解和应用它们到实际项目中,提升你的Java编程能力。
本资源“DesignPattern::pencil:设计模式_java实现以及详解”提供了一套详细的学习材料,帮助开发者理解和应用设计模式。 该资源的作者是“养码青年-Style”,他通过这个项目记录了自己的设计模式学习过程。鼓励...
DesignPattern-master这个压缩包可能包含了一个关于设计模式的项目或者教程资源。 设计模式分为三类:创建型模式(Creational Patterns)、结构型模式(Structural Patterns)和行为型模式(Behavioral Patterns)...
"designPattern:设计模式相关代码实现"这个项目,显然提供了不同设计模式在Java语言中的实际应用示例。 在Java世界里,设计模式主要分为三大类:创建型模式、结构型模式和行为型模式。每种模式都针对特定的编程问题...
本资源"DesignPattern:设计模式.net源代码"提供了一套基于.NET实现的设计模式示例,旨在帮助程序员更好地理解和应用这些模式。 在"DesignPattern-master"这个压缩包中,你可能找到的文件结构和内容包括: 1. **...
这个名为"DesignPattern"的压缩包文件很可能包含了一个Java实现的各种设计模式的示例程序。 在这个"DesignPattern-master"目录中,我们可以期待找到一系列与设计模式相关的Java源代码文件(.java),每个文件或...
23种设计模式(Design Pattern)的C++实现范例,包括下面列出的各种模式,代码包含较详细注释。另外附上“设计模式迷你手册.chm”供参考。 注:项目在 VS2008 下使用。 创建型: 抽象工厂模式(Abstract Factory) 生成...
designpattern design pattern for java 描述: pattern.p001.factory :工厂模式。 pattern.p002.abstractfactory : 抽象工厂模式。 pattern.p003.singletonEH : 单例模式(饿汉式)。 pattern.p003.singletonLH : ...
"DesignPattern:C#设计模式示例"这个资源很可能是包含多个C#实现的设计模式示例代码库。 设计模式通常分为三类:创建型、结构型和行为型。每种模式都解决了特定场景下的问题,并提供了良好的代码组织和扩展性。 ...
单例模式(Singleton)、策略模式(StrategyPattern)、适配器模式(AdapterPattern)、装饰者模式(DecoratorPattern)、抽象工厂模式(AbstractFactoryPattern)、观察者模式(ObserverPattern)、建造者模式...
在本文中,我们将深入探讨设计模式的核心概念,并结合"Head First DesignPattern_src"中的源码,详细解析一些关键的设计模式。 1. 单例模式(Singleton): 单例模式确保一个类只有一个实例,并提供全局访问点。在...
4. 建造者模式(Builder Pattern): 建造者模式将复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示。在C#中,建造者模式常用于创建复杂的对象,比如GUI组件或数据库记录,通过分离构造过程和表示...
本项目"designPattern:练习设计模式"提供了一个学习和实践各种设计模式的平台。 1. **单例模式**:确保一个类只有一个实例,并提供一个全局访问点。在Java中,单例模式通常通过双重检查锁定、静态内部类或枚举来...
设计模式是软件工程中的一种最佳实践,它是在特定情境下解决常见问题的经验总结。...在DesignPattern-master这个压缩包中,你可以找到关于这些模式的详细讲解和实例代码,为你的Java开发之旅提供宝贵的参考资料。
这个名为"DesignPattern:有关设计模式的一些演示"的项目,可能是为了帮助开发者理解和应用各种设计模式。 设计模式分为三大类:创建型、结构型和行为型。创建型模式关注对象的创建过程,如单例(Singleton)、工厂...
"Design*Pattern*Framework*4.5" 可能指的是一个基于 .NET Framework 4.5 的设计模式实现或教程集合。 设计模式是经验丰富的软件开发者的智慧结晶,它们被分为三类:创建型、结构型和行为型。创建型模式涉及对象的...
本资源"Design-Pattern:设计模式(Java实现)"涵盖了多种经典的设计模式,通过Java语言进行了具体实现,旨在帮助开发者更好地理解和应用这些模式。 1. **单例模式**:确保一个类只有一个实例,并提供全局访问点。在...
最后,还有建造者模式(Builder)用于分步骤构建复杂对象,隔离对象的构造过程,使得构造过程和表示分离。 以上只是部分设计模式的简介,Head First 设计模式书中详细讲解了23种经典设计模式,每种模式都有实际的...