비망록 모드 디자인 모드 입문 Memento

2431 단어 비망록 모드
//       :
//           ,           ,             。
//                     
//  :      。                ,        
//    
//         
public interface FlowAMockMemento {
	//  ,     ,          ,                  
}
//     
public class FlowAMock {
	private String flowName;
	private int tempResult;
	private String tempState;
	public FlowAMock(String flowName) {
		this.flowName = flowName;
	}
	public void runPhaseOne() {
		tempResult = 3;
		tempState = "PhaseOne";
	}
	public void shema1() {
		this.tempState += ",Schema1";
		System.out.pritnln(this.tempState+":now run"+tempResult);
		this.tempResult += 11;
	}
	public void schema2() {
		this.tempState += ",Schema2";
		System.out.pritnln(this.tempState+":now run"+tempResult);
		this.tempResult += 22;
	}
	public FlowAMockMemento createMemento() {
		return new MementoImpl(this.tempResult, this.tempState);
	}
	public void setMemento(FlowAMockMemento memento) {
		MementoImpl mementoImpl = (MementoImpl)memento;
		this.tempResult = mementoImpl.getTempResult();
		this.tempState = mementoImpl.getTempState();
	}
	private static class MemetoImpl implements FlowAMockMemento	{
		private int tempResult;
		private String tempState;
		public MemetoImpl(int tempResult, String tempState) {
			this.tempResult = tempResult;
			this.tempState = tempState;
		}
		public int getTempResult() {
			return tempResult;
		}
		public int getTempState() {
			return tempState;
		}
	}
}
//      
public class FlowAMementoCareTaker {
	private FlowAMockMemento memento = null;
	public void saveMemento(FlowAMockMemento memento) {
		this.memento = memento;
	}
	public FlowAMockMemento retriveMemento() {
		return this.memento;
	}
}
//client
public class Client {
	public static void main(String[] args) {
		FlowAMock mock = new FlowAMock("TestFlow");
		mock.runPhaseOne();
		FlowAMementoCareTaker careTaker = new FlowAMementoCareTaker();
		FlowAMockMemento memento = mock.createMemento();
		careTaker.saveMemento(memento);
		mock.schema1();//       
		mock.setMemento(careTaker.retriveMemento());//    
		mock.schema2();//        
	}
}
//       :         
//  :      。            ,                         
//                    ,              
//         ,        。       
//                     
저작권 성명: 본 블 로그 의 오리지널 글, 블 로그, 동의 없 이 전재 할 수 없습니다.

좋은 웹페이지 즐겨찾기