坦克大战java_清华毕业大佬用一个坦克大战项目讲完了23种设计模式
先给大家讲述一下坦克大战是怎么进行运行的。
坦克大战第一节:
new 出一个窗口;
设定标题栏内容;
TankFrame从Frame继承+显示;
认识paint方法,重写;
坦克大战第二节
学习graphics类,画图;
学习repaint方法;
实现MyKeyListener,对键盘作出响应;
MyKeyListener从KeyAdapter继承;
坦克大战第三节
取得具体按键信息;
根据具体按键调整坦克位置,持有对方引用;
抽象出坦克类,学习使用枚举类型;
坦克大战第四节
把监听处理类MyKeyListener放到TankFrame内;
用匿名内部类处理窗口关闭;
根据按键状态,改变坦克方向;
坦克大战第五节
根据坦克方向移动位置;
能停,能动;
test包,关于classloader的知识;
06坦克大战第六节
将坦克换成图片版;
画出一颗子弹,让子弹飞一会儿;
按下ctrl键,主战坦克打出一发炮弹;
07坦克大战第七节
打出多发子弹;
子弹从坦克中心位置打出;
子弹消亡(飞出游戏区);
08坦克大战第八节
定义rectangle属性,不用每次都new;
炮弹new出来自动加入容器,死掉后自动去除;
分离玩家和机器人,对边界进行不同的处理;
09坦克大战第九节
用双缓冲消除闪烁;
加一堆敌人坦克;
做碰撞检测;
10坦克大战第十节
显示爆炸;
加入声音;
让敌人坦克更加智能;
11坦克大战第十一节
对坦克和子弹加入 Group属性;
测试Properties类的使用;
建立PropertyMgr类;
12坦克大战第十二节
MV分开 Model View分离;
GameModel 改成单例模式;
对于碰撞的处理;
13坦克大战第十三节
Class.forName().newInstance();
抽象出游戏物体的父类;
合成GameModel中的各种不同物体;
14坦克大战第十四节
完善责任链模式;
加入墙;
按键切换发射策略;
15坦克大战第十五节
实现暂停功能;
实现存盘功能;
使用Junit测试服务器loop;
16坦克大战第十六节
去掉敌人的坦克(机器控制的坦克);
处理接收到的消息;
player新的构造方法;
17坦克大战第十七节
让后来人能看到先加入者;
加入坦克方向改变的消息;
重构代码;
18坦克大战十八节
处理改变坦克方向的消息;
发送主战坦克停止的消息;
发送主战坦克开始移动的消息(方向没变);
19坦克大战第十九节
加入子弹和Player的撞击逻辑;
把主战坦克也加入到List中;
完成坦克大战网络版
设计模式(23种设计模式)
创建型:
1. 单件模式(Singleton Pattern);
2. 抽象工厂(Abstract Factory);
3. 建造者模式(Builder);
4. 工厂方法模式(Factory Method);
5. 原型模式(Prototype);
原型模式坦克大战java实现2(侧重说明模式的价值)
一个实例用全创建型模式
一个实例用全创建型模式-优化(冗余消除)
结构型:
6. 适配器模式(Adapter Pattern);
7. 桥接模式(Bridge Pattern);
8. 装饰模式(Decorator Pattern);
9. 组合模式(Composite Pattern);
10. 外观模式(Facade Pattern);
11. 享元模式(Flyweight Pattern);
12. 代理模式(Proxy Pattern);
行为型:
13. 模板方法(Template Method);
14. 命令模式(Command Pattern);
15. 迭代器模式(Iterator Pattern);
16. 观察者模式(Observer Pattern);
17. 解释器模式(Interpreter Pattern);
18. 中介者模式(Mediator Pattern);
19. 职责链模式(Chain of Responsibility Pattern);
20. 备忘录模式(Memento Pattern);
21. 策略模式(Strategy Pattern);
22. 访问者模式(Visitor Pattern);
23. 状态模式(State Pattern)-坦克大战实例;
状态模式(State Pattern)-电控门实例
中和应用:
策略模式和职责链模式实现坦克大战
策略模式和职责链模式实现坦克大战2
策略模式和职责链模式实现坦克大战3(享元模式追加)
坦克大战状态模式+单实例实现实现
下面能给大家来java坦克大战300集和23种设计模式,还有图解设计模式哦~~大家转发关注小编,私信小编“学习”来得到获取方式吧~~
图解设计模式
23种设计模式
java坦克大战300集
坦克大战java_清华毕业大佬用一个坦克大战项目讲完了23种设计模式相关推荐
- 23种设计模式详解_太厉害了,清华大牛一个坦克项目就把23种设计模式给抽丝剥茧了...
坦克大战项目 坦克大战项目通过一个联机对战游戏的手把手,一行一行的开发过程,让你精准的理解和运用JavaSE,DesignPatterns , TCP/IP, 多线程, NIO等基础知识.真正理解项目 ...
- 神了!有人用一个项目把23种设计模式与六大原则融会贯通了
前言 设计模式分为三类,创建型,结构型和行为型.创建型比较好理解,它抽象了实例化过程,将系统与实例的创建解耦.实例由专门的工厂来创建,从而使系统针对实例的抽象接口编程,不依赖任何具体的实现.结构型和行 ...
- 【每天一个java设计模式(完)】 - 四万字实现23种设计模式(附示例源码)
什么是设计模式:[每天一个java设计模式(零)] - 设计模式基本概念及七大设计原则 创建型模式 工厂模式:[每天一个java设计模式(一)] - 工厂模式 抽象工厂模式: [每天一个java设计模 ...
- 挑战30秒记住23种设计模式,顺口溜【一个连贯的故事】
二十三种设计模式图 23种设计模式 创建型模式,共五种:工厂方法模式.抽象工厂模式.单例模式.建造者模式.原型模式.结构型模式,共七种:适配器模式.装饰器模式.代理模式.外观模式.桥接 ...
- 7.Java_模板设计模式---抽象类的实际应用(咖啡和茶的冲泡法),基于抽象类,核心是封装算法。引入钩子方法。开闭原则。23种设计模式
基于抽象类的模板设计模式,核心是封装算法. 1.模板方法定义了一个算法的步骤,允许子类为一个或多个步骤提供具体实现. 2.模板(模板方法)模式:(典型:Servlet),AQS 在一个方法中定义算法的 ...
- 清华毕业后,一个成藤校教授,一个为比尔·盖茨花钱,这对最强闺蜜是如何炼成的?...
来源 | 精英说(ID:elitestalk) <人物>对科学家颜宁的一篇专访再次把她推向微博热搜,在采访中,颜宁说道:"到了40岁,才发现这年龄前所未有的好". 颜宁 ...
- python 添加新元素时如果有重复的不进行添加_清华毕业大佬整理的Python基础22大知识点,自备热水,这货有点干...
前言 新人报道,请多关照! 小编今天给大家带来了学习Python的22大基础要点,由浅及深的接触学习,希望能帮到大家更好的学习.当然更加希望大家能够喜欢啊~~~ 1.Python的两种编程方式:交互式 ...
- 某一个接口403 其他接口可以调通_设计模式HR:不会设计模式,你来面什么试?你以为设计模式只有23种?(真正的入门到精通可以用到入土)...
设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用.设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案.这些解决方案是众多软件开发人员经过 ...
- 用java写一个坦克大战游戏
写一个坦克大战游戏需要具备一定的Java编程基础和对游戏开发的了解.具体实现步骤如下: 需求分析:明确游戏的目标.玩家.障碍物.子弹等要素,并制定游戏规则. 设计游戏界面:设计游戏界面,包括坦克.障碍 ...
最新文章
- Java获取当前类名的两种方法
- ML之NB:(NLP)基于sklearn库利用不同语种数据集训练NB(朴素贝叶斯)算法,对新语种进行语种检测
- 传统外贸不好做,为什么不来做跨境电商?
- 高性能优秀的服务框架-dubbo介绍
- lightroom最新版本下载_pi最新版本下载教程
- django-模板变量
- pythonenumapi_python模块之enum_上
- 获取会话的连接和断开事件
- 17995 Stupid thief 组合数学
- Ubuntu14.04上安装Jupyter的方法
- CSS部分设置背景颜色为半透明
- Win11 安装 Linux 子系统
- 【中医学】11 常见病证-1:感冒:咳嗽:泄泻:水肿:淋证:心痛
- 使用appium进行app自动化测试时遇到AppActivity设置正确但报Connect Appium Server Fail.A new session could not be created
- Tableau Fixed和include区别
- Oracle从周一到周日的日期排序
- java list 交集 并集 差集 去重复并集
- 中国外交部和中国驻英国使、领馆联系办法
- 我所了解的各公司使用的 Ceph 存储集群 (携程、乐视、有云、宝德云、联通等)...
- 歪解stateful session bean 和 stateless session bean的区别。
热门文章
- 产品经理与交互设计师的区别是什么?
- 施尧耘:量子计算终将实现;段路明:大规模量子计算还任重道远
- iOS程序员也要学点算法吧 简单排序之插入排序
- 通用权限管理系统组件 (GPM - General Permissions Manager) 中实现按部门组织机构设置权限...
- Java平台模块化系统(JSR 376)通过公开测评复议投票
- Python数据可视化1.2 数据转换
- Tcl与Design Compiler (二)——DC综合与Tcl语法结构概述
- 浅析iOS中的触摸事件
- 3dmax坐标系与导出fbx的坐标系
- 今天开始在博客园正式安家!