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 0;}
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(1);builder.BuildRoom(2);builder.BuildDoor(1, 2);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(0)
{
}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

转载于:https://www.cnblogs.com/javastart/p/6950613.html

第9月第6天 push pop动画 生成器模式(BUILDER)相关推荐

  1. iOS 自定义转场动画, nav的push/pop自定义动画

    本文记录分享下自定义转场动画的实现方法,具体到动画效果:新浪微博图集浏览转场效果.手势过渡动画.网易音乐启动屏转场动画.开关门动画.全屏侧滑返回效果 的代码可以到Github WSLTransferA ...

  2. js push(),pop(),unshift(),shift()的用法小结

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

  3. 【Android 逆向】x86 汇编 ( push / pop 入栈 / 出栈 指令 | ret / retn 函数调用返回指令 | set 设置目标值指令 )

    文章目录 一.push / pop 入栈 / 出栈 指令 二.ret / retn 函数调用返回指令 三.set 设置目标值指令 总结 一.push / pop 入栈 / 出栈 指令 push / p ...

  4. [WPS笔试题]实现栈的push,pop,max且时间复杂度为O(1)

    今天做了一下WPS的笔试题,遇到了一道关于栈的题,觉得挺有意思的,就写篇博客分享一下吧~~ 题目要求:要求实现栈的数据结构,在该类型中实现一个能够得到栈的最大元素的max函数,在该栈中,调用max,p ...

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

    js 的数组怎么push一个对象. Js数组的操作push,pop,shift,unshift JavaScrip push()函数用于向当前数组的添加一个或多个元素,并返回新的数组长度.新的元素将会 ...

  6. 每天一算法(二)实现栈的push pop 操作,并可以输出栈的最小值

    实现栈的push pop 操作,并可以输出栈的最小值 // SatckMin.cpp : 定义控制台应用程序的入口点. //#include "stdafx.h" #include ...

  7. dismiss ios pop效果_iOS ~ ViewController的Push,Pop和Present,Dismiss转场动画

    转场动画涉及到的包括导航控制器的Push动画和Pop动画,以及普通控制器的Present和Dismiss动画,主要就是通过控制器遵守UIViewControllerTransitioningDeleg ...

  8. arr的push,pop,slice.....各种使用方法详细介绍

    arr的push,pop,slice-各种使用方法 arr.push(); 向数组的末尾追加元素 会修改原数组 返回值:修改后的length值 可以追加多个 arr[1,2,3]; arr1[4,5, ...

  9. js中对数组的增删方法:push(),pop(),unshift(),shift(),splice()的用法小结

    1.push().pop()和unshift().shift() 这两组同为对数组的操作,并且会改变数组的本身的长度及内容. 不同的是 push().pop() 是从数组的尾部进行增减,unshift ...

  10. 8086汇编push和pop指令注意点(push pop 只对字操作(不允许字节进栈))

    push和pop是用来操作栈的2个指令. push寄存器:将一个寄存器中的数据入栈pop寄存器:出栈用一个寄存器接收数据 1.push pop 只对字操作(不允许字节进栈)操作数长度为32位时进出栈为 ...

最新文章

  1. 在baidu上找到自己
  2. Yii 判断是不是post方式提交的数据
  3. 服务器资源数据结果汇总
  4. pfx证书密码怎么查询_2019成考成绩查询时间通知!忘记账号和密码怎么办?
  5. 负样本修正:CVR预估时间延迟问题
  6. boost::fusion::traits::tag_of用法的测试程序
  7. 正则-元字符 注意正则表达式中间不要随意加空格
  8. C和指针笔记 3.8 static关键字
  9. v8引擎和v12引擎_v8和v12发动机的区别
  10. java process 重启_JAVA Process启动sh 后的问题
  11. 谈论为什么要写博客的重要性
  12. HTML案例登录页面
  13. HTML5轮播图全代码
  14. 南京大学计算机学院飞跃手册,2014南京大学物理学院飞跃手册.pdf
  15. 《智能商业》由阿里巴巴学术委员会主席、前总参谋长曾鸣亲自编写,值得一读!
  16. 3dsmaxC4DbodypainterPS画贴图一、展开模型UV。
  17. 《流畅的Python》学习笔记(11):可迭代的对象、迭代器和生成器
  18. Python最佳学习路线图
  19. JAVA IO流(3)
  20. 最小差值(java)

热门文章

  1. Python(二十五):排序、反转
  2. 又见 Lucky Number
  3. suse 查看java版本_如何查看当前Linux的版本
  4. matlab怎么调出来的,如何调出MATLAB内部函数的源程序?
  5. .net from 关闭事件_libVLC 事件机制
  6. 【HDU4691】Front compression(求给定两个子串/后缀的最长公共前缀---后缀数组+st表+一点思维)
  7. 蔬菜大棚原理_温室大棚的原理是什么?
  8. java正则过滤小括号,java正则表达式获取大括号小括号内容并判断数字和小数亲测可用...
  9. php 包含截断,php – 表单包含大量输入时截断/缺少表单...
  10. 容器技术Docker K8s 46 Serverless Kubernetes(ASK)详解-场景应用