ADT 设计方案
- Rung
表示踏板,为了表示踏上与不上线程,我的rung类是继承的ReentrantLock - 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() - 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) - MongkeyGenerator
5. ChooseStrategy
这是一个抽象类,表示过河策略,里面有三个具体的类
函数:
5.1 初始化 ladders 的地图
5.2 根据不同策略返回 ladder,即选择的梯子
6. GUILogger
7. App