第9月第6天 push pop动画 生成器模式(BUILDER)
1.
https://github.com/MichaelHuyp/QQNews
2.生成器模式(BUILDER)
class MazeBuilder
{
public:
virtual void BuildMaze() {}
virtual void BuildRoom(int room) {}
virtual void BuildDoor(int roomFrom, int roomTo) {} virtual Maze* GetMaze() { return ;}
protected:
MazeBuilder();
} class StandardMazeBuilder : public MazeBuilder { public: StandardMazeBuilder(); /* */ virtual void BuildMaze(); virtual void BuildRoom(int); virtual void BuildDoor(int, int); /* */ virtual Maze* GetMaze(); private: Direction CommonWall(Room*, Room*); Maze* _currentMaze; };//StandardMazeBuilder是ConcreteBuilder,提供部件的具体构造代码 Maze* MazeGame::CreateMaze (MazeBuilder& builder) { builder.BuildMaze(); builder.BuildRoom(); builder.BuildRoom(); builder.BuildDoor(, ); return builder.GetMaze(); }//CreateMaze是导向器,调用生成器的抽象接口完成产品的构造过程。 //下面代码描述产品的构造过程 Maze* maze;//最终的产品 MazeGame game;//Director,导航者 StandardMazeBuilder builder;//ConcreteBuilder,实际的构造类 game.CreateMaze(builder);//开始装配 maze = builder.GetMaze();//获取装配后的产品
http://blog.csdn.net/zs634134578/article/details/17853433
StandardMazeBuilder::StandardMazeBuilder()
: m_currentMaze()
{
} void StandardMazeBuilder::BuildMaze()
{
m_currentMaze = new Maze();
} void StandardMazeBuilder::BuildRoom(int roomNo)
{
if (m_currentMaze->RoomNo(roomNo) == NULL)
{
Room *room = new Room(roomNo); room->SetSide(Room::East, new Wall());
room->SetSide(Room::South, new Wall());
room->SetSide(Room::West, new Wall());
room->SetSide(Room::North, new Wall()); m_currentMaze->AddRoom(room);
}
} void StandardMazeBuilder::BuildDoor(int roomFrom, int roomTo)
{
Room *r1 = m_currentMaze->RoomNo(roomFrom);
Room *r2 = m_currentMaze->RoomNo(roomTo); Door *door = new Door(r1, r2); r1->SetSide(CommononWall(r1, r2), door);
r2->SetSide(CommononWall(r2, r1), door);
} Room::Direction StandardMazeBuilder::CommononWall(Room *from, Room *to)
{
}
https://github.com/e5MaxSpace/DesignPatterns
第9月第6天 push pop动画 生成器模式(BUILDER)的更多相关文章
- 自定义UINavigationController push和pop动画
http://segmentfault.com/q/1010000000143983 默认的UINavigationController push和pop的默认动画都是左右滑动推出,我的应用要求这种界 ...
- js 的数组怎么push一个对象. Js数组的操作push,pop,shift,unshift JavaScrip
push()函数用于向当前数组的添加一个或多个元素,并返回新的数组长度.新的元素将会依次添加到数组的末尾. 该函数属于Array对象,所有主流浏览器均支持该函数. 语法 array.push( ite ...
- 数据结构---设计一个栈,push, pop, min 时间复杂度都是 O(1)
普通的栈,push, pop 操作的复杂度是 O(1), 但是如果要找出其中的最小值,则需要 O(N)的时间. 题目要求 min 复杂度也是 O(1), 做法便是 空间换时间,每一步栈的最小值都用一个 ...
- js中常用数组方法concat join push pop slice splice shift
javascript给我们很多常用的 数组方法,极大方便了我们做程序.下面我们来介绍下常用的集中数组方法. 比如 concat() join() push() pop() unshift() shif ...
- 解决 iOS View Controller Push/Pop 时的黑影
那么如何解决这个问题呢? 实际上很简单,如果这个 ViewController 是在 TabBarViewController 的 NavigationController 上 Push/Pop 的, ...
- 汇编 push ,pop指令
知识点: PUSH POP CALL堆栈平衡 RETN指令 一.PUSH入栈指令 (压栈指令): 格式: PUSH 操作数 //sub esp,4 ;mov [esp],EBP 操作数 ...
- js中push(),pop(),unshift(),shift()的用法
js中push(),pop(),unshift(),shift()的用法小结 1.push().pop()和unshift().shift() 这两组同为对数组的操作,并且会改变数组的本身的长度及 ...
- js push(),pop(),shift(),unshift()
以前没有太在意这些,这几天看<Javascript 设计模式与开发实践>(不得不说这是一本好书) 发现总是会用到这几个函数,可是有什么区别呢?? 简单来说是两套东西(数据结构时老师详细的讲 ...
- iOS7 push/pop转场动画
前言 iOS 7之后,苹果提供了自定义转场动画的API,我们可以自己去定义任意动画效果.本篇为笔者学习push.pop自定义转场效果的笔记,如何有任何不正确或者有指导意见的,请在评论中留下您的宝贵意见 ...
随机推荐
- B1048 数字加密
15/20 #include<bits/stdc++.h> using namespace std; stack<int> s; char a[3]={'J','Q','K'} ...
- thinkphp在wamp 配置去掉url中index.php方法
http://blog.csdn.net/youmypig/article/details/45008971
- Linux内核分析-构造一个简单的Linux系统MenuOS
构造一个简单的Linux系统MenuOS linux内核目录结构 arch目录包括了所有和体系结构相关的核心代码.它下面的每一个子目录都代表一种Linux支持的体系结构,例如i386就是Intel C ...
- 《Linux内核分析》第一周——计算机是如何工作的?
杨舒雯 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 课程内容 1.诺曼依体系 ...
- Vivado绑定外部verilog编辑器
前言 由于Vivado自带的verilog编辑器确实难用,写起来效率不高,因而寻找到了以下教程. 解决方案 引用sublime作为vivado外部verilog编辑器 sublime text中文编码 ...
- 功能WBS分解
小组名称:飞天小女警 项目名称:礼物挑选小工具 小组成员:沈柏杉(组长).程媛媛.杨钰宁.谭力铭 代码地址:HTTPS: https://git.coding.net/shenbaishan/GIFT ...
- [Asp.net MVC]Asp.net MVC5系列——布局视图
目录 系列文章 概述 布局视图 系列文章 [Asp.net MVC]Asp.net MVC5系列——第一个项目 [Asp.net MVC]Asp.net MVC5系列——添加视图 [Asp.net M ...
- [转帖]MerkleDAG全面解析 一文读懂什么是默克尔有向无环图
MerkleDAG全面解析 一文读懂什么是默克尔有向无环图 2018-08-16 15:58区块链/技术 MerkleDAG作为IPFS的核心数据结构,它融合了Merkle Tree和DAG的优点,今 ...
- 消息队列1:RabbitMQ解析并基于Springboot实战
RabbitMQ简介 AMQP:Advanced Message Queue,高级消息队列协议.它是应用层协议的一个开放标准,为面向消息的中间件设计,基于此协议的客户端与消息中间件可传递消息,并不受产 ...
- nginx提示Job for nginx.service failed because the control的问题
启动nginx时就报错!Job for nginx.service failed because the control process exited with error code. See &qu ...