2013-04-10 2 views
1

Есть ли способ в java для возврата объектов в исходное состояние. Я показываю поиски, однако, когда я достигаю узел изменить значениеСбросить объекты до состояния inital

current.visited = true; 

затем следующий поиск запуск теперь должен быть равен

current.visited = false; 

который является выполнимым, за исключением неправильной логики.

Так в идеале строительство код будет выглядеть следующим образом:

 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

Вы должны взглянуть на Memento шаблон проектирования, хотя, если имхо самый простой способ для хранения посещенных флаги как java.util.Set зарегистрированного идентификатора узла (содержит стоимость операции 1 для любой реализации Set), которую вы инициируете для каждого поиска.

В противном случае Memento модель Wiki dexcription является:

«Шаблон сувениром является шаблон проектирования программного обеспечения, которое дает возможность восстановить объект в исходное состояние»

0

Я хотел бы использовать свой собственный reset() метод (ы). Достаточно просто.

Смежные вопросы