2013-04-10 3 views
1

오브젝트를 초기 상태로 재설정하는 방법이 있습니까? 그때 지금 다음 검색 실행이 잘못된 논리를 제외하고 행할 수오브젝트를 초기 상태로 재설정

current.visited = false; 

동일해야합니다 노드에 도달

current.visited = true; 

에 값을 변경할 때, 그러나, 검색을 시연하고있다. 가장 간단한 방법은 java.util.Set으로 방문 플래그를 저장하는 것입니다 이럴 경우 비록, 당신은 디자인 패턴을 기념하는 모습을 가져야한다

 System.out.printf ("Breadth first search...\n\n"); 
    breadthFirstSearchMap (Romania); 

RESET Objects here... 
    System.out.printf ("Depth first search...\n\n"); 
    depthFirstSearchMap (Romania); 

and again here... 

    System.out.printf ("Depth limited search...\n\n");  
    depthLimitedSearchMap (Romania); 
+2

어떻게 초기 상태를 결정합니까? 리셋 메소드를 사용하거나 새로운 객체를 만들기 위해'new'를 사용하십시오. –

+0

초기 상태로 재설정하는 방법을 제공 하시겠습니까? 초기 상태가 무엇인지 정의하는 방법은 무엇입니까? 아니면 다시 만드시겠습니까? 뭐? –

+0

변수를 사용하기 전에 변수를 사용한 후에 "초기"상태로 생각한 상태로 수동으로 상태를 설정하십시오. –

답변

1
public interface Resetable { 

    public void reset(); 
} 

class Foo implements Resetable { 
    ... 
} 
0
ClassObject depthFirstSearchMap; 
public void blabla(){ 
depthFirstSearchMap = new ClassObject(Romaina); 
System.out.printf ("Breadth first search...\n\n"); 
breadthFirstSearchMap (Romania); 
depthFirstSearchMap = new ClassObject(Romaina); 
System.out.printf ("Depth first search...\n\n"); 
depthFirstSearchMap (Romania); 
depthFirstSearchMap = new ClassObject(Romaina); 
System.out.printf ("Depth limited search...\n\n");  
depthLimitedSearchMap (Romania); 
} 
+0

고마워, 아팠어. – user1093111

0

:

그래서 이상적으로 구성하는 코드는 같을 것이다 각 검색을 위해 시작한 방문한 노드 ID (모든 Set 구현의 운영 비용 1 포함)

그렇지 않으면 메멘토 패턴 위키 dexcription은 다음과 같습니다

내가 내 자신의 reset() 방법을 사용

0

(들 "메멘토 패턴은 이전 상태로 개체를 복원 할 수있는 기능을 제공하는 소프트웨어 디자인 패턴이다"). 간단하게 할 수 있습니다.

관련 문제