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)的更多相关文章

  1. 自定义UINavigationController push和pop动画

    http://segmentfault.com/q/1010000000143983 默认的UINavigationController push和pop的默认动画都是左右滑动推出,我的应用要求这种界 ...

  2. js 的数组怎么push一个对象. Js数组的操作push,pop,shift,unshift JavaScrip

    push()函数用于向当前数组的添加一个或多个元素,并返回新的数组长度.新的元素将会依次添加到数组的末尾. 该函数属于Array对象,所有主流浏览器均支持该函数. 语法 array.push( ite ...

  3. 数据结构---设计一个栈,push, pop, min 时间复杂度都是 O(1)

    普通的栈,push, pop 操作的复杂度是 O(1), 但是如果要找出其中的最小值,则需要 O(N)的时间. 题目要求 min 复杂度也是 O(1), 做法便是 空间换时间,每一步栈的最小值都用一个 ...

  4. js中常用数组方法concat join push pop slice splice shift

    javascript给我们很多常用的 数组方法,极大方便了我们做程序.下面我们来介绍下常用的集中数组方法. 比如 concat() join() push() pop() unshift() shif ...

  5. 解决 iOS View Controller Push/Pop 时的黑影

    那么如何解决这个问题呢? 实际上很简单,如果这个 ViewController 是在 TabBarViewController 的 NavigationController 上 Push/Pop 的, ...

  6. 汇编 push ,pop指令

    知识点:  PUSH  POP  CALL堆栈平衡  RETN指令 一.PUSH入栈指令 (压栈指令): 格式: PUSH 操作数 //sub esp,4 ;mov [esp],EBP 操作数 ...

  7. js中push(),pop(),unshift(),shift()的用法

    js中push(),pop(),unshift(),shift()的用法小结   1.push().pop()和unshift().shift() 这两组同为对数组的操作,并且会改变数组的本身的长度及 ...

  8. js push(),pop(),shift(),unshift()

    以前没有太在意这些,这几天看<Javascript 设计模式与开发实践>(不得不说这是一本好书) 发现总是会用到这几个函数,可是有什么区别呢?? 简单来说是两套东西(数据结构时老师详细的讲 ...

  9. iOS7 push/pop转场动画

    前言 iOS 7之后,苹果提供了自定义转场动画的API,我们可以自己去定义任意动画效果.本篇为笔者学习push.pop自定义转场效果的笔记,如何有任何不正确或者有指导意见的,请在评论中留下您的宝贵意见 ...

随机推荐

  1. 2013337朱荟潼 Linux第二章读书笔记——从内核出发

    1.获取内核源码 1.1Git 分布式的:下载和管理Linux内核源代码: - 获取最新提交到版本树的一个副本 $ git clone git://git.kernel.org/pub/scm/lin ...

  2. 睡眠猴子——Alpha阶段项目总结

    设想和目标 1. 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? 针对广大失眠人群,尤其是程序猿用户的失眠问题.定义的清楚.描述过. 2. 是否有充足的时间来做计划 ...

  3. JavaBeans与内省(Introspector)

    JavaBean与Introspector 反射和内省操作很多时候都是在以后要做框架的时候作用非常大.    现在你学的是面向对象编程,即:你所写代码都能够找到对应的类或接口,找到具体的方法写出对应的 ...

  4. ehlib使用内存表的方法

    ehlib提供了一个TMemTableEh控件,这个控件不需要连接数据库就可以在ehlib中显示数据,在做一些虚的表格时比较有用. 简单的使用主要有这几个步骤: 1.添加量过控件Tdatasource ...

  5. sessionStorage & localStorage in-depth

    sessionStorage & localStorage in-depth Web Storage API https://developer.mozilla.org/en-US/docs/ ...

  6. 【设计模式】—— 适配器模式Adapter

    前言:[模式总览]——————————by xingoo 模式意图 如果已经有了一种类,而需要调用的接口却并不能通过这个类实现.因此,把这个现有的类,经过适配,转换成支持接口的类. 换句话说,就是把一 ...

  7. BZOJ5416 NOI2018冒泡排序(动态规划+组合数学)

    打表可以发现相当于不存在长度>=3的递减子序列. 考虑枚举在哪一位第一次不卡限制.注意到该位一定会作为前缀最大值.判掉已确定位不合法的情况后,现在的问题即为求长度为i.首位>j的合法排列个 ...

  8. 【题解】 bzoj1503: [NOI2004]郁闷的出纳员 (Splay)

    bzoj1503,懒得复制,戳我戳我 Solution: 我知不知道我是那根筋抽了突然来做splay,调了起码\(3h+\),到第二天才改出来(我好菜啊),当做训练调错吧 一个裸的splay,没啥好说 ...

  9. HGOI20180815 (NOIP 提高组模拟赛 day2)

    Day 2 rank 11 100+35+30=165 本题是一道数论题,求ax+by=c的正整数对(x,y) x>=0并且y>=0 先说下gcd: 求a,b公约数gcd(a,b) 如gc ...

  10. sql server 小技巧(4) Sql server 排序时让空值排在最后

    order by  coalesce( u.sort, 2147483647) sql server 小技巧 集锦