模拟游戏--鸭子的种类

模拟游戏–鸭子的种类

主要模拟现实世界中各种鸭子的发声特征、飞行特征和外观特征。需要模拟的鸭子种类及其特征如下表所示。
在这里插入图片描述
为了支持将来能够模拟更多种类鸭子的特征,决定采用策略(Strategy)模式。
类图结构如下:
在这里插入图片描述
1.工程文件
在这里插入图片描述
2.Duck.java

package simulator_duck;

public interface Duck {
	public abstract void playDuck();

}

3.Simulator.java

package simulator_duck;

public class Simulator {
	Duck duck;
	public void setDuck(Duck duck) {
		this.duck=duck;
	}
	public void play() {
		if(duck!=null)
			duck.playDuck();
		else
			System.out.println("没有可模拟的鸭子");
	}

}

4.CottonDuck.java

package simulator_duck;

public class CottonDuck implements Duck{
	private String phonationCharacteristics="QuackNoWay";
	private String flightCharacteristics="FlyNoWay";
	private String appearanceCharacteristics="White";
	public void playDuck() {
		System.out.println("CottonDuck:"+phonationCharacteristics+"\t"
	+flightCharacteristics+"\t"+appearanceCharacteristics);
	}
}

5.MallardDuck.java

package simulator_duck;

public class MallardDuck implements Duck{
	private String phonationCharacteristics="Quack";
	private String flightCharacteristics="FlyWithWings";
	private String appearanceCharacteristics="Grey feather";
	public void playDuck() {
		System.out.println("MallardDuck:"+phonationCharacteristics+"\t"
	+flightCharacteristics+"\t"+appearanceCharacteristics);
	}

}

6.RedHeadDuck.java

package simulator_duck;

public class RedHeadDuck implements Duck{
	private String phonationCharacteristics="Quack";
	private String flightCharacteristics="FlyWithWings";
	private String appearanceCharacteristics="Grey wool - red head";
	public void playDuck() {
		System.out.println("RedHeadDuck:"+phonationCharacteristics+"\t"
	+flightCharacteristics+"\t"+appearanceCharacteristics);
	}

}

7.RubherDuck.java

package simulator_duck;

public class RubherDuck implements Duck{
	private String phonationCharacteristics="Squeak";
	private String flightCharacteristics="FlyNoWay";
	private String appearanceCharacteristics="Black and white rubber";
	public void playDuck() {
		System.out.println("RubherDuck:"+phonationCharacteristics+"\t"
	+flightCharacteristics+"\t"+appearanceCharacteristics);
	}
}

8.Application.java

package simulator_duck;

public class Application {
	public static void main(String[] args) {
		// TODO 自动生成的方法存根
        Simulator simulator=new Simulator();
        simulator.setDuck(new  MallardDuck());
        simulator.play();
        simulator.setDuck(new RedHeadDuck());
        simulator.play();
        simulator.setDuck(new CottonDuck());
        simulator.play();
        simulator.setDuck(new RubherDuck());
        simulator.play();
	}
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值