You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
85 lines
2.0 KiB
85 lines
2.0 KiB
/**
|
|
* 家庭安全系统类
|
|
* 实现了Lockable、Monitored和Alarmable三个接口
|
|
*/
|
|
public class HomeSecuritySystem implements Lockable, Monitored, Alarmable {
|
|
private String name;
|
|
private boolean locked;
|
|
private boolean monitoring;
|
|
private boolean alarmTriggered;
|
|
|
|
public HomeSecuritySystem(String name) {
|
|
this.name = name;
|
|
this.locked = false;
|
|
this.monitoring = false;
|
|
this.alarmTriggered = false;
|
|
}
|
|
|
|
@Override
|
|
public void lock() {
|
|
locked = true;
|
|
System.out.println(name + " 安全系统已锁定");
|
|
}
|
|
|
|
@Override
|
|
public void unlock() {
|
|
locked = false;
|
|
System.out.println(name + " 安全系统已解锁");
|
|
}
|
|
|
|
@Override
|
|
public boolean isLocked() {
|
|
return locked;
|
|
}
|
|
|
|
@Override
|
|
public void startMonitoring() {
|
|
if (!monitoring) {
|
|
monitoring = true;
|
|
System.out.println(name + " 安全系统开始监控");
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public void stopMonitoring() {
|
|
if (monitoring) {
|
|
monitoring = false;
|
|
System.out.println(name + " 安全系统停止监控");
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public String getMonitoringStatus() {
|
|
return name + " 安全系统状态: " + (monitoring ? "监控中" : "未监控");
|
|
}
|
|
|
|
@Override
|
|
public void triggerAlarm() {
|
|
if (!alarmTriggered) {
|
|
alarmTriggered = true;
|
|
System.out.println(name + " 安全系统警报已触发!");
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public void silenceAlarm() {
|
|
if (alarmTriggered) {
|
|
alarmTriggered = false;
|
|
System.out.println(name + " 安全系统警报已解除");
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public boolean isAlarmTriggered() {
|
|
return alarmTriggered;
|
|
}
|
|
|
|
/**
|
|
* 激活完整的安全模式
|
|
*/
|
|
public void activateFullSecurity() {
|
|
lock();
|
|
startMonitoring();
|
|
System.out.println(name + " 完整安全模式已激活");
|
|
}
|
|
} |