2019年秋季学期软件构造 Lab6

ADT 设计方案

  1. Rung
    表示踏板,为了表示踏上与不上线程,我的rung类是继承的ReentrantLock
  2. Ladder 表示梯子,域包括:
    在这里插入图片描述
    函数包括:
    // 返回同输入方向相同的该梯子上的第一个猴子,分成从左到右,从右到左的 情况
    public Monkey getMonkey(String direction)
    // 判断梯子上是否有猴子
    public boolean isEmpty()
    //统计梯子上猴子的个数 public int MonkeyNumber()
    // 返回踏板个数
    public int GetLength()
    //返回梯子的编号
    public String getLadderID()
    //设置梯子序号
    public void setLadderID(String LadderID)
    //梯子的编号等信息
    public String toString()
  3. Monkey 表示猴子,这里继承 Thread
    在这里插入图片描述
    函数: 构造函数
    // 猴子过河的过程
    public void run()
    //通过猴子状态写日志
    public void logstate()
    //将猴子的信息写成日志
    public String toString()
    //猴子生成器可调用的函数,生成随机猴子
    public static Monkey generateMonkey(int MV, int StratTime)
    //猴子生成器可调用的函数,生成指定过河策略的猴子
    public static Monkey generateMonkey(int MV, int Strattime,Class<? extends ChooseStrategy> strategy)
  4. MongkeyGenerator

在这里插入图片描述
5. ChooseStrategy
这是一个抽象类,表示过河策略,里面有三个具体的类

在这里插入图片描述
函数:
5.1 初始化 ladders 的地图
5.2 根据不同策略返回 ladder,即选择的梯子
6. GUILogger
7. App

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值