写点什么

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

用户头像
周老师
关注
发布于: 2021 年 06 月 11 日

坦克大战项目

坦克大战项目通过一个联机对战游戏的手把手,一行一行的开发过程,让你精准的理解和运用 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. 完成网络版

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






坦克大战项目教程笔记




抽丝剥茧设计模式

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

比如在工厂模式中,我直接讲到 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 种设计模式的文档与视频,小编都为大家准备好了

欢迎大家扫码来关注公众号博主,获取文章全部资料,此公众号会持续更新技术干货、不定期分享 Java 进阶面试宝典、Java 核心知识、架构书籍电子版


用户头像

周老师

关注

精通java热衷于分享java领域资料,感谢支持 2020.06.09 加入

还未添加个人简介

评论

发布
暂无评论
太牛了,清华大佬用一个坦克项目就把23种设计模式给抽丝剥茧了