太牛了,清华大佬马士兵用一个坦克项目就把23种设计模式给抽丝剥茧了

坦克大战项目

坦克大战项目通过一个联机对战游戏的手把手,一行一行的开发过程,让你精准的理解和运用JavaSE,DesignPatterns , TCP/IP, 多线程, NIO等基础知识。真正理解项目的开发过程,并体会项目开发的难点和痛点。 请记住,只有做项目,才是对所学的真正检验。

坦克大战项目目录

  1. new出一个窗口

  2. 设定标题栏内容

  3. TankFrame从Frame继承+显示

  4. 认识paint方法重写

  5. 学习graphics 类画图

  6. 学习repaint 方法

  7. 实现MyKeyListener对键盘作出响应

  8. MyKeyListener从KeyAdapter继承

  9. 取得具体按键信息

  10. 根据具体按键调整坦克位置持有对方引用

  11. 抽象出坦克类学习使用枚举类型记录键盘状态

  12. 把监听处理类MyKeyListener放到TankFrame内部

  13. 用匿名内部类处理窗口关闭

  14. 根据按键状态改变坦克方向

  15. 根据坦克方向移动位置

  16. 能停能动

  17. test包关于classloader的知识

  18. 将坦克换成图片版

  19. 画出一颗子弹让子弹飞- -会儿

  20. 按下ctrl键主战坦克打出一发炮弹

  21. 打出多发子弹

  22. 子弹从坦克中心位置打出

  23. 子弹消亡(飞出游戏区)

  24. 定义rectangle属性不用每次都new

  25. 炮弹new出来自动加入容器死掉后自动去除

  26. 分离玩家和机器人对边界进行不同的处理

  27. 用双缓冲消除闪烁

  28. 加一堆敌人坦克

  29. 做碰撞检测

  30. 显示爆炸

  31. 加入声音

  32. 让敌人坦克更加智能

  33. 对坦克和子弹加入Group属性,

  34. 不同的Group可以互相撞击

  35. 测试Properties类的使用

  36. 建立PropertyMgr类

  37. MV分开Model View分离

  38. GameModel改成单例模式

  39. 对于碰撞的处理

  40. Class. forName().newInstance()

  41. 抽象出游戏物体的父类

  42. 把GameModel中的各种不同物体的List合成为一个

  43. List <GameObject>

  44. 完善责任链模式

  45. 加入墙

  46. 按键切换发射策略

  47. 实现暂停功能

  48. 实现存盘功能

  49. 使用Junit测试服务器loop

  50. 去掉敌人的坦克(机器控制的坦克)

  51. 处理接收到的消息

  52. player新的构造方法

  53. 让后来人能看到先加入者

  54. 加入坦克方向改变的消息

  55. 重构代码

  56. 收到改变坦克方向消息时让player的moving为true

  57. 发送主战坦克停止的消息

  58. 发送主战坦克开始移动的消息(方向没变)

  59. 加入子弹和Player的撞击逻辑

  60. 把主战坦克也加入到List中

  61. 完成网络版

坦克大战项目——架构视频

转发+关注后私信我【马士兵】领取设计模式、坦克大战学习资料

你敢信?清华大佬用一个坦克项目把23种设计模式给讲明白了


你敢信?清华大佬用一个坦克项目把23种设计模式给讲明白了


你敢信?清华大佬用一个坦克项目把23种设计模式给讲明白了


你敢信?清华大佬用一个坦克项目把23种设计模式给讲明白了


你敢信?清华大佬用一个坦克项目把23种设计模式给讲明白了


坦克大战项目教程笔记

转发+关注后私信我【马士兵】领取设计模式、坦克大战学习资料

你敢信?清华大佬用一个坦克项目把23种设计模式给讲明白了


你敢信?清华大佬用一个坦克项目把23种设计模式给讲明白了


你敢信?清华大佬用一个坦克项目把23种设计模式给讲明白了


抽丝剥茧设计模式

在这些模式中,我并没有止步于理论讲解(那其实非常简单),而是坚持用代码说话,用实际能用的上的代码说话。

比如在工厂模式中,我直接讲到SpringIOC原理。

比如在动态代理模式和Visitor模式中,我直接讲到ASM。

.........

创建型

1. Factory Method(工厂方法)

2. Abstract Factory(抽象工厂)

3. Builder(建造者)

4. Prototype(原型)

5. Singleton(单例)

结构型

6. Adapter Class/Object(适配器)

7. Bridge(桥接)

8. Composite(组合)

9. Decorator(装饰)

10. Facade(外观)

11. Flyweight(享元)

12. Proxy(代理)

行为型

13. Interpreter(解释器)

14. Template Method(模板方法)

15. Chain of Responsibility(责任链)

16. Command(命令)

17. Iterator(迭代器)

18. Mediator(中介者)

19. Memento(备忘录)

20. Observer(观察者)

21. State(状态)

22. Strategy(策略)

23. Visitor(访问者)

23种设计模式笔记文档

你敢信?清华大佬用一个坦克项目把23种设计模式给讲明白了


23种设计模式视频

转发+关注后私信我【马士兵】领取设计模式、坦克大战学习资料

你敢信?清华大佬用一个坦克项目把23种设计模式给讲明白了


你敢信?清华大佬用一个坦克项目把23种设计模式给讲明白了



你敢信?清华大佬用一个坦克项目把23种设计模式给讲明白了


从上面可以很清晰的看到坦克大战和23种设计模式的文档与视频,小编都为大家准备好了,如果大家伙需要的话,可以转发此文关注小编,私信小编“马士兵”来得到获取方式吧!

推荐阅读

阿里P9架构师120分钟带你掌握线程池,不在为线程而烦恼

https://www.bilibili.com/video/BV1GE411N7sc?p=10

TCP的三次握手,四次挥手加IP、SOCKET全景图,面试有备无患!

https://www.bilibili.com/video/BV1HQ4y1M7oe/

不懂算法怎么去字节等大厂面试?左程云大神联合马士兵大佬120分钟带你掌握算法底层

https://www.bilibili.com/video/BV1Aa4y147BQ/


本文为我原创

本文禁止转载或摘编

-- --
  • 投诉或建议
评论