겉면(Facade) 모드[구조 모드 제4편]
3139 단어 Security
객체의 구조 모델입니다.외부와 하위 시스템의 통신은 반드시 통일된 외관 대상을 통해 진행해야 한다.549P
1. 겉치레 모드의 역할:
1. 겉치레 역할: 클라이언트가 이 역할을 호출할 수 있는 방법.이 역할은 관련 서브시스템의 기능과 책임을 안다.
정상적인 상황에서 본 역할은 클라이언트에서 보낸 모든 요청을 해당하는 서브시스템에 위임합니다.
2. 서브시스템 역할: 한 개 이상의 서브시스템을 동시에 가질 수 있다.모든 서브시스템은 하나의 단독 클래스가 아니라 하나의 클래스의 집합이다.
모든 하위 시스템은 클라이언트에 의해 직접 호출되거나, 외부 역할에 의해 호출될 수 있다.서브시스템은 겉면의 존재를 모른다. 서브시스템에 대해 말하자면
겉모습은 단지 다른 클라이언트일 뿐이다.
2. 외관 모드를 사용하는 보안 시스템
//
public class Client{
private static SecurityFacade security;
private static void main(String args[]){
security.activate();
}
}
//
public class SecurityFacade{
private Camera camera1 , camera2;
private Light light1, light2, light3;
private Sensor sensor;
private Alarm alarm;
public void activate(){
camera1.turnOn();
camera2.turnOn();
light1.turnOn();
light2.turnOn();
light3.turnOn();
sensor.activate();
alarm.activate();
}
public void deactivate(){
camera1.turnOff();
camera2.turnOff();
light1.turnOff();
light2.turnOff();
light3.turnOff();
sensor.deactivate();
alarm.deactivate();
}
}
//
public class Camera{
public void turnOn(){
System.out.println("Turning on the camera.");
}
public void turnOff(){
System.out.println(Turning off the camera.);
}
//
public void rotate(int degrees){
System.out.println("rorating the camera by " + degrees + " degrees.");
}
}
//
public class Light{
public void turnOn(){
System.out.println("Turning on the light.");
}
public void turnOff(){
System.out.println("Turning off the light.");
}
//
public void changeBulb(){
System.out.println("changing the light-bulb.");
}
}
//
public class Sensor{
public void activate(){
System.out.println("Acticating the sensor.");
}
public void deactivate(){
System.out.println("Deactivating the sensor.");
}
//
public void trigger(){
System.out.println("The sensor has been triggered.");
}
}
public class Alarm{
public void activate(){
System.out.println("Activating the alarm.");
}
public void deactivate(){
System.out.println("Deactivate the alarm.");
}
//
public void ring(){
System.out.println("Ring the alarm.");
}
//
public void stopRing(){
System.out.println("Stop the alarm.");
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
클립보드로 컨텐트 복사//txt参数为显示和复制的文本内容 function copyToBoard(txt) { if(window.clipboardData) { window.clipboardData.clearData(); window.clipb...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.