디자인 모드 의 Command 모드 배우 기 (명령 모드)

어떤 큰 글 을 인용 하 다.
우리 가 흔히 볼 수 있 는 상황 중 하 나 는 메뉴 명령, 버튼 감청 이다.다음은 자주 사용 하 는 간단 한 예 를 들 어 보 겠 습 니 다.
public class Test {
   public static void main(String[] args) {
	JButton jb = new JButton();
	jb.addActionListener(new ActionListener(){

		public void actionPerformed(ActionEvent e) {
			// TODO Auto-generated method stub
			doSomething();
		}
		
	});
}
}
 
JButton 을 디자인 할 때 우 리 는 사용자 가 어떤 방법 을 호출 할 지, 언제 호출 할 지 결정 할 수 없 기 때문에 우 리 는 외부 인 터 페 이 스 를 제공 하여 사용자 의 요구 에 응 하고 구체 적 인 응답 내용 을 외부 사용자 에 게 응답 내용 을 결정 합 니 다.위의 코드 와 같이 사용자 가 단 추 를 눌 렀 을 때 호출 하 는 방법의 actionPerformed () 는 이 단 추 를 만 들 때 특정한 명령 행동 에 대응 하 는 actionPerformed () 방법 을 사용 할 수 있 습 니 다.감청 대상 (Action Listener) 을 연결 합 니 다.
다음은 간단 한 예 를 사용 합 니 다. 예 를 들 어 온라인 게임 에서 무 기 를 전환 하여 적 을 맞이 해 야 합 니 다. 그러면 예 는 다음 과 같 습 니 다.
1.interface Weapon
package com.xuyi.command;


/**
 * @author xuyi
 *     
 */
public interface Weapon {
	public String switchWeapon();
}
 
 2.Test.java
package com.xuyi.command;

//command  -    :  command      ,              
public class Test {
	private static void kill(Weapon weapon){
		System.out.println(weapon.switchWeapon());
	}
	
	private static String doSomeThing(){
		return "         ";
	}
	
	public static void main(String[] args) {
		//     
		Weapon weapon = new Weapon(){
			public String switchWeapon() {
				return doSomeThing();
			}
		};
		//           ,doSomeThing        
		kill(weapon);
		
	}
	
}

 3. command 모드 와 기타 모드 관계
    1). command 모드 는 해석 기 모드 와 유사
    2). Comsmand 모드 도 Factory 모드 와 유사 합 니 다. Factory 에서 사용 자 는 대상 을 언제 만 들 지 모 르 고 어떤 종 류 를 예화 해 야 할 지 모 릅 니 다.
    3). Command 모드 도 위 에서 언급 한 actionListener 와 같이 다른 모드 와 함께 자주 사용 합 니 다. 우 리 는 보통 이 인 터 페 이 스 를 먼저 실현 한 다음 에 다시 사용 합 니 다.
addActionListener (this). 또는 현재 actionPerformed () 를 다른 클래스 로 패키지 합 니 다.

좋은 웹페이지 즐겨찾기