[code=java]package cn.zjc.test.elevator;
/**
* 大楼控制器类
* */
public class BuildingController {
/**电梯控制器*/
private ElevatorController elevatorController;
/**电梯*/
private Elevator elevator;
/**
* 构造函数
* */
public BuildingController(){
init();
}
/**
* 初始化方法
* */
private void init(){
Building building = new Building(); //创建大楼
building.setName("宣海家园"); //设置大楼的名称
elevatorController = building.createNewElevatorController("1-1-01"); //创建电梯服务系统
elevator = elevatorController.createNewElevator("神州2号"); //创建一部电梯
new Thread(elevatorController).start(); //启动电梯控制器线程
}
}[/code]
2.Building类
[code=java]package cn.zjc.test.elevator;
/**
* 这是一个大楼类,模拟分为20层
* */
public class Building {
/*private static final int total = 20;*/
/**大楼名称*/
private String name;
public Building(){
//init();
}
//初始化大楼,为每一层创建独立的线程
public void init(){
/*Elevator elevator = new Elevator("第一电梯");
for(int i = 1 ; i <= total ; i ++){
new Thread(new LayerThread(i ,elevator)).start();
}*/
}
public void setName(String name){
this.name = name;
}
public String getName(){
return name;
}
/**
* 创建一个新的电梯控制器
* @param name(String)
* @return ElevatorController
* */
public ElevatorController createNewElevatorController(String name){
ElevatorController elevatorController = new ElevatorController(name);
return elevatorController;
}
}[/code]
3.ElevatorController类
[code=java]package cn.zjc.test.elevator;
import java.util.HashMap;
/**
* 电梯控制器类
* @作者 张佳超
* */
public class ElevatorController implements Runnable{
/**电梯控制器的名称*/
private String name;
/**电梯应用*/
private Elevator elevator;
private HashMap<String ,Elevator> elevators;
/**
* 构造函数
* */
public ElevatorController(String name){
init(name);
}
/**
* 初始化电梯控制器
* */
private void init(String name){
this.name = name;
elevators = new HashMap<String, Elevator>();
}
/**
* setter of name
* */
public void setName(String name){
this.name = name;
}
/**
* getter
* */
public String getName(){
return name;
}
/**
* 创建一部新的电梯
* @返回 电梯
* */
public Elevator createNewElevator(String name){
elevator = new Elevator(name);