策略模式--红色警戒2之兵种设计
* 攻击接口
*
* @author leizhimin 11-12-18 下午5:13
*/
public interface Attackable {
//攻击
void attacking();
}
* 移动接口
*
* @author leizhimin 11-12-18 下午5:13
*/
public interface Moveable {
void moving();
}
* 士兵抽象类
*
* @author leizhimin 11-12-18 下午5:14
*/
public abstract class Soldier {
private Attackable attackable; //攻击接口对象
private Moveable moveable; //移动接口对象
public Soldier(Attackable attackable, Moveable moveable) {
this.attackable = attackable;
this.moveable = moveable;
}
//每个士兵都会挂掉,惨叫一声、挂了后从单元集合中移除
public void dead() {
doScreech(); //惨叫一声
System.out.println( "挂了,被系统从单元队列中移除!");
}
//所有的兵死前都会惨叫,这个是惨叫声,需要具体的士兵实现
abstract void doScreech();
public Attackable getAttackable() {
return attackable;
}
public Moveable getMoveable() {
return moveable;
}
}
* 小手枪攻击
*
* @author leizhimin 11-12-18 下午6:00
*/
public class HandgunAttack implements Attackable {
public void attacking() {
System.out.println( "小手枪攻击,噼~噼~噼~~~");
}
}
* AK47攻击
*
* @author leizhimin 11-12-18 下午5:57
*/
public class Ak47Attack implements Attackable{
public void attacking() {
System.out.println( "AK47攻击,哒哒哒......");
}
}
* 天上飞行
*
* @author leizhimin 11-12-18 下午6:05
*/
public class SkyMove implements Moveable{
public void moving() {
System.out.println( "天上飞行!");
}
}
* 陆地走动
*
* @author leizhimin 11-12-18 下午6:04
*/
public class WalkMove implements Moveable{
public void moving() {
System.out.println( "陆地走动!");
}
}
* 陆地走动或者水里游动
*
* @author leizhimin 11-12-18 下午6:07
*/
public class WalkOrSwimMove implements Moveable{
public void moving() {
System.out.println( "陆地走动或者水里游动!");
}
}
* 探亚
*
* @author leizhimin 11-12-18 下午5:50
*/
public class TanyaSoldier extends Soldier {
public TanyaSoldier(Attackable attackable, Moveable moveable) {
super(attackable, moveable);
}
@Override
void doScreech() {
System.out.println( "(探亚)呃~~~~~");
}
}
* 飞行兵
*
* @author leizhimin 11-12-18 下午6:19
*/
public class SkySoldier extends Soldier {
public SkySoldier(Attackable attackable, Moveable moveable) {
super(attackable, moveable);
}
@Override
void doScreech() {
System.out.println( "(飞行兵)噗——");
策略模式--红色警戒2之兵种设计相关推荐
- 基于策略模式的商场价格优惠设计
基于策略模式的商场价格优惠设计 本文为个人的论文,由于一些原因未能发表,所以拿出来和朋友分享下 注:本文配有源码,如有需要的朋友,请在留言中留下邮箱地址,我会在第一时间发送 本文介绍一种基于策 ...
- 【Head First 模式设计】第1章 策略模式
Intro to Design Patterns Welcome to Design Patterns SimUDuck应用程序 一个模拟鸭子游戏:SimUDuck.游戏中会出现各种鸭子,一边游泳,一 ...
- 这可能是把策略模式讲的最通俗易懂得文章了!
点击上方"方志朋",选择"置顶公众号" 技术文章第一时间送达! 本文转载自微信公众号:漫话编程  周末无事,窝在家里面看<权力的游戏第八季>,看的 ...
- 设计模式学习---策略模式
最近在看"Head First 设计模式"这本书,便想将自己所学的记录下来以加深理解,文中肯定有许多不足之处,请各位前辈们指出. 什么是设计模式 设计模式并不是某种开发语言中的工具 ...
- 漫画:如何给女朋友解释什么是策略模式?
责编 | 伍杏玲 本文经授权转载自漫话编程(ID:mhcoding) 周末无事,窝在家里面看<权力的游戏第八季>,看的很是津津有味,虽然感觉有一点点要烂尾,但是我还是忍不住要去看到底谁可 ...
- 策略模式和工厂模式的区别_设计模式系列 — 策略模式
点赞再看,养成习惯,公众号搜一搜[一角钱技术]关注更多原创技术文章. 本文 GitHub org_hejianhui/JavaStudy 已收录,有我的系列文章. 前言 23种设计模式速记 单例(si ...
- C++设计模式之策略模式(行为型模式)
学习软件设计,向OO高手迈进! 设计模式(Design pattern)是软件开发人员在软件开发过程中面临的一般问题的解决方案. 这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来 ...
- 设计模式之策略模式(实例+Demo)
马上要放清明小长假了,各位都想好去哪里玩了没?清明前的周日,整理下发型,梳理好心情,发个文章,再思考下清明去哪玩,哈哈哈. 不多废话,切入正题: 你从本文主要能了解到如下几点:1. 为什么要写这篇文章 ...
- 设计模式解读之一: 策略模式——鸭子游戏
设计模式解读之一: 策略模式--鸭子游戏 当我们掌握了Java的语法,当我们了解了面向对象的封装.继承.多态等特性,当我们可以用Swing.Servlet.JSP技术构建桌面以及Web应用,不意味着我 ...
最新文章
- vs如何设置对话框显示在最前面_【另存为】对话框的使用
- 在家搭建大数据分布式计算环境!
- 向阿里学数字化转型,驱动业绩新增长
- 利用SAP FR高效预测客户需求
- 递归算法转换为非递归算法的技巧
- 浮点数用大小端存储吗_干细胞存储有什么用,干细胞有必要存储吗
- 如何理解Java的类变量、成员变量、常量、类属性、实例属性、字段(field)、成员方法、类方法
- Java 12 - Java StringBuffer和StringBuilder类
- UDT源码剖析(二):UDT自带例程recvfile注释
- makefile 编译不同目录下的源文件
- SQLServer基础之数据页类型:GAM,SGAM,PFS
- python中如何调用图像处理库_python怎么调用图像处理
- 关于ubuntu上,usb设备编号
- 不需要密码卸载Symantec Endpoint Protection
- 网站运营中同时把握好网站推广和用户体验度
- [转载]Palm 串行通讯GPS数据读取的实现
- bat批量修改文件名
- 超级计算机的等级,亿亿次级别运算曙光初现-超级计算机,千万亿次,TeraScale,万万亿次,ExaScale ——快科技(驱动之家旗下媒体)--科技改变未来...
- 【PAT甲级】1062 Talent and Virtue (25分)
- 音频视频播放器 on PPC
热门文章
- 项目经理在团队不同阶段的领导风格
- 安装net_speeder
- 制作简易的牛顿摆锤模型
- 新一代红米参数模糊的背后 是否有欺诈嫌疑?
- 瞬息万变的技术圈与焦虑的技术人,进阶Android需要掌握的那几个关键技术!
- 【已解】英雄联盟lol撸啊撸“寻找对局”按钮无法点击,开不了赛解决方法
- 绝绝子!京东大牛用一文将Python 接口自动化测试解析透彻的不行~
- 高德地图基于阿里云MaxCompute的最佳实践
- 你对本岗位的认识PHP,本岗位工作认识
- PostgreSQL 源码解读(31)- 查询语句#16(查询优化-表达式预处理#1)