디자인 모드 --- 명령 모드 (command pattern)

5426 단어 Pattern
Group. java 코드 는 다음 과 같 습 니 다.

package com.designPattern.command;

/**
 * 
 * @author yangjianzhou
 *          ,             
 */
public abstract class Group {

	public abstract void find();
	
	public abstract void add();
	
	public abstract void delete();
	
	public abstract void change();
	
	public abstract void plan();
	
}


RequirementGroup. java 코드 는 다음 과 같 습 니 다.

package com.designPattern.command;

public class RequirementGroup extends Group{

	@Override
	public void find() {
		System.out.println("     !");
	}

	@Override
	public void add() {
		System.out.println("          !");
		
	}

	@Override
	public void delete() {
		System.out.println("          !");
		
	}

	@Override
	public void change() {
		System.out.println("          !");
		
	}

	@Override
	public void plan() {
		System.out.println("          !");
		
	}

}


PageGroup. java 코드 는 다음 과 같 습 니 다.

package com.designPattern.command;

public class PageGroup extends Group{
	
	@Override
	public void find() {
		System.out.println("     !");
	}

	@Override
	public void add() {
		System.out.println("          !");
		
	}

	@Override
	public void delete() {
		System.out.println("          !");
		
	}

	@Override
	public void change() {
		System.out.println("          !");
		
	}

	@Override
	public void plan() {
		System.out.println("          !");
		
	}

}


CodeGroup. java 코드 는 다음 과 같 습 니 다.

package com.designPattern.command;

public class CodeGroup extends Group{

	@Override
	public void find() {
		System.out.println("     !");
	}

	@Override
	public void add() {
		System.out.println("          !");
		
	}

	@Override
	public void delete() {
		System.out.println("          !");
		
	}

	@Override
	public void change() {
		System.out.println("          !");
		
	}

	@Override
	public void plan() {
		System.out.println("          !");
		
	}


}


command. java 코드 는 다음 과 같 습 니 다.

package com.designPattern.command;

/**
 * 
 * @author yangjianzhou
 *      
 */
public abstract class Command {
	
	/**
	 *      
	 */
	protected RequirementGroup rg = new RequirementGroup();
	
	protected PageGroup pg = new PageGroup();
	
	protected CodeGroup cg = new CodeGroup();
	
	public abstract void execute();

}


AddRequirementCommand. java 코드 는 다음 과 같 습 니 다.

package com.designPattern.command;

public class AddRequirementCommand extends Command{

	@Override
	public void execute() {
		
		super.rg.find();
		
		super.rg.add();
		
		super.rg.plan();
		
	}

}


DeletePageCommand. java 코드 는 다음 과 같 습 니 다.

package com.designPattern.command;

public class DeletePageCommand extends Command{

	@Override
	public void execute() {
		
		super.pg.find();
		
		super.pg.delete();
		
		super.pg.plan();
		
	}

}


Invoker. java 코드 는 다음 과 같 습 니 다.

package com.designPattern.command;

/**
 * 
 * @author yangjianzhou
 *      
 */
public class Invoker {
	
	private Command command;

	public void setCommand(Command command) {
		this.command = command;
	}

	public void action(){
		this.command.execute();
	}

}


Client. java 코드 는 다음 과 같 습 니 다.

package com.designPattern.command;

public class Client {
	
	public static void main(String[] args) {
		
		Invoker invoker = new Invoker();
		System.out.println("==================          ===================");
		Command command = new AddRequirementCommand();
		invoker.setCommand(command);
		invoker.action();
		
		System.out.println("==================          ===================");
		command = new DeletePageCommand();
		invoker.setCommand(command);
		invoker.action();
	}

}


실행 결 과 는 다음 과 같 습 니 다.

==================          ===================
     !
          !
          !
==================          ===================
     !
          !
          !

좋은 웹페이지 즐겨찾기