겉면(Facade) 모드[구조 모드 제4편]

3139 단어 Security
도어(Facade) 모드:
객체의 구조 모델입니다.외부와 하위 시스템의 통신은 반드시 통일된 외관 대상을 통해 진행해야 한다.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.");
			}
		}

좋은 웹페이지 즐겨찾기