?? controlsys.java
字號:
/*
* ControlSys
* 2007
* 門禁系統
*/
package s2javaoo.xmal.sys;
import org.apache.log4j.Logger;
import s2javaoo.xmal.user.Admin;
public class ControlSys {
private Door door; // 門禁系統的電子門
private Computer computer; // 門禁系統的計算機
private InputEquip inputEquip; // 門禁系統的輸入設備
private int ring; // 門鈴,0為安靜,1為鳴響
private int openSign; // 開門信號,由管理員按下按鈕時產生,1為開啟信號
private Logger logger; // 日志
/**
* 初始化
*/
public ControlSys(){
this.door = new Door();
this.computer = new Computer();
this.inputEquip = new InputEquip();
this.ring = 0;
this.openSign = 0;
this.logger = Logger.getLogger(Admin.class.getName());
System.out.println("門禁系統的使用方法\n" +
" 1.模擬輸入密碼:以“pa”開頭,后跟密碼\n" +
" 2.模擬刷卡:以“ca”開頭,后跟卡號\n" +
" 3.模擬取指紋:以“fi”開頭,后跟表示指紋的字符串\n"+
" 4.模擬管理員按下開門按鈕:輸入“y”");
System.out.println("***************************************************");
logger.info("門禁系統啟動");
}
/**
* 門禁系統工作:檢查設備狀態,調度設備和記錄日志
*/
public void work(){
/* 檢查輸入設備的輸入緩存 */
if(inputEquip.getInput()!=null){
if(inputEquip.getInput().equals("exit")){
logger.info("門禁系統關閉");
System.exit(0);
}
if(computer.validate(inputEquip.getInput())){
door.open(); // 開啟電子門
logger.info("<身份驗證成功, "+inputEquip.getInput()+" 通過電子門>"); // 記錄日志
inputEquip.setInput(null); // 清空輸入設備緩存
} else {
logger.info("身份驗證失敗"); // 記錄日志
}
}
/* 檢查開門信號 */
if(this.getOpenSign()==1){
door.open(); // 開啟電子門
logger.info("管理員開啟了電子門"); // 記錄日志
this.setOpenSign(0); // 電子門開門信號歸零
}
/* 電子門開啟狀態將維持5秒后關閉 */
if(door.getState().equals(Door.OPEN)){
try {
Thread.sleep(5000); // 讓電子門開啟狀態維持5秒
} catch (InterruptedException e) {
logger.debug(e.getMessage());
}
door.close(); // 關閉電子門
logger.info("電子門關閉"); // 記錄日志
}
}
/**
* @param ring 要設置的 ring
*/
public void ring() {
this.ring = 1;
}
/**
* @return computer
*/
public Computer getComputer() {
return computer;
}
/**
* @return door
*/
public Door getDoor() {
return door;
}
/**
* @return inputEquip
*/
public InputEquip getInputEquip() {
return inputEquip;
}
/**
* @return logger
*/
public Logger getLogger() {
return logger;
}
/**
* @return ring
*/
public int getRing() {
return ring;
}
/**
* @param ring 要設置的 ring
*/
public void setRing(int ring) {
this.ring = ring;
}
/**
* @return openSign
*/
public int getOpenSign() {
return openSign;
}
/**
* @param openSign 要設置的 openSign
*/
public void setOpenSign(int openSign) {
this.openSign = openSign;
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -