java策略案例国王,骑士_实例说明策略模式

最近工作不是很多,正好抽出时间学习一下期待已经的设计模式,作为一名刚毕业一年的开发人员更应该多抽出些时间了解一下设计模式。

此片文章对策略模式做一个总结,希望对大家有帮助。

(题外话:策略模式之前只是看定义和一些简单的例子,根本不明白,最后一头雾水,不过下面这个小例子还挺有趣的哦,能很好的理解到底什么是策略模式。)

一.案例

设计一个动作冒险类游戏,游戏大概是这样的:游戏中有不同的角色,每个角色战斗时使用的武器不同。现有两个角色:骑士(Knight)和巨魔头(Troll),Knight的武器是宝剑(Sword),巨魔头的武器是斧头(Axe);作战规则,先确定身份,使用武器作战,最后停止作战。

1.分析:

Knight和Troll都是角色,所以可以定义一个超类Character;

确定角色身份,使用武器,作战,停止作战都作为Character类具有的方法:

(1)每个角色的身份,使用武器作战的方式不同,所以在Character中定义为抽象方法(abstract),在子类Knight和Troll中具体实现;

(2)而停止作战就是一个停止动作,所以直接在character中实现由子类继承即可。

2.按照如上分析代码实现(体现了基本的OO设计原则:继承、抽象):

角色类(超类):public abstract class Character {

public abstract void identify();

public abstract void fight();

public void stopFight(){

System.out.println("Hi,stop fight and go to sleep,now");

}

}

骑士类(子类):public class Knight extends Character{

//实现父类的接口

public void identify() {

System.out.println("Hi

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值