重本名校大佬用一个Java项目实战,能教会20多种设计模式

这个Java的项目实战案例就是我们熟悉的、经典游戏:坦克大战

实现的功能

1、单人模式

2、双人模式

3、通过广度优先算法实现坦克寻路功能

我们要让敌方坦克动起来,不仅要移动,还要打出炮弹,

实现思路

数据存储表示:在JPanel绘制图像,统一规定各个方块的大小为同一大小(如墙壁,坦克之类,子弹除外),从而方便使用二维数组存储地图的各个元素。

关于检测物体碰撞,这里使用了一个MyImage的父类,将坦克,墙壁定义为继承这个父类的一个类。、

图像打印则借助遍历两个ConcurrentHashMap分别储存坦克和其他类型的方块。将这些方块使用Map而不是使用数组是因为管理起来比较方便,而二维数组则是为了寻路算法而准备的,防止了频繁使用上面的两个Map而导致线程锁的问题。

设计模式

结构型:

适配器模式(Adapter Pattern);

桥接模式(Bridge Pattern);

外观模式(Facade Pattern);

享元模式(Flyweight Pattern);

代理模式(Proxy Pattern);

装饰模式(Decorator Pattern);

组合模式(Composite Pattern);

创建型:

单件模式(Singleton Pattern);

抽象工厂(Abstract Factory);

建造者模式(Builder);

工厂方法模式(Factory Method);

原型模式(Prototype);

行为型:

模板方法(Template Method);

解释器模式(Interpreter Pattern);

中介者模式(Mediator Pattern);

命令模式(Command Pattern);

迭代器模式(Iterator Pattern);

观察者模式(Observer Pattern)

职责链模式(Chain of Responsibility Pattern);

备忘录模式(Memento Pattern);

策略模式(Strategy Pattern);

访问者模式(Visitor Pattern);

状态模式(State Pattern)-坦克大战实例

最后,小编整理了以上 坦克大战项目实战、设计模式 和一些Java的资料

关注 转发文章 ;++我威信 bmaaa01 (记得备注来源)。 先到先得

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容