Java

阿里P9仅用坦克大战项目就讲明白了23种设计模式,看完人傻掉了

2020-06-02  本文已影响0人  该用户已秃头

设计模式

设计模式(Design Pattern)是前辈们对代码开发经验的总结,是解决特定问题的一系列套路。它不是语法规定,而是一套用来提高代码可复用性、可维护性、可读性、稳健性以及安全性的解决方案。

这 23 种设计模式的本质是面向对象设计原则的实际运用,是对类的封装性、继承性和多态性,以及类的关联关系和组合关系的充分理解。

当然,软件设计模式只是一个引导,在实际的软件开发中,必须根据具体的需求来选择:

对于简单的程序,可能写一个简单的算法要比引入某种设计模式更加容易;

但是对于大型项目开发或者框架设计,用设计模式来组织代码显然更好。

坦克大战项目

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

坦克大战项目目录

new出一个窗口

设定标题栏内容

TankFrame从Frame继承+显示

认识paint方法重写

学习graphics 类画图

学习repaint 方法

实现MyKeyListener对键盘作出响应

MyKeyListener从KeyAdapter继承

取得具体按键信息

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

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

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

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

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

根据坦克方向移动位置

能停能动

test包关于classloader的知识

将坦克换成图片版

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

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

打出多发子弹

子弹从坦克中心位置打出

子弹消亡(飞出游戏区)

定义rectangle属性不用每次都new

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

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

用双缓冲消除闪烁

加一堆敌人坦克

做碰撞检测

显示爆炸

加入声音

让敌人坦克更加智能

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

不同的Group可以互相撞击

测试Properties类的使用

建立PropertyMgr类

MV分开Model View分离

GameModel改成单例模式

对于碰撞的处理

Class. forName().newInstance()

抽象出游戏物体的父类

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

List <GameObject>

完善责任链模式

加入墙

按键切换发射策略

实现暂停功能

实现存盘功能

使用Junit测试服务器loop

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

处理接收到的消息

player新的构造方法

让后来人能看到先加入者

加入坦克方向改变的消息

重构代码

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

发送主战坦克停止的消息

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

加入子弹和Player的撞击逻辑

把主战坦克也加入到List中

完成网络版

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

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

坦克大战项目教程笔记

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

抽丝剥茧设计模式

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

比如在工厂模式中,我直接讲到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种设计模式的文档与视频,小编都为大家准备好了,如果大家伙需要的话,可以转发此文关注小编,私信小编“架构资料”来得到获取方式吧!

上一篇下一篇

猜你喜欢

热点阅读