Crozin:
Mam do ciebie jeszcze jedno pytanie.
Z twoich postów wywnioskowałem, że lepiej dla mnie zrobić algorytm odseparowany od grafu. I doszedłem do wniosku, że jest to rozwiązanie dobre, bo w zależności od sytuacji będe mógł wykorzystać odpowiedni algorytm.
Ty w przykładzie podałeś indeksowanie pól/wierzchołków grafu za pomocą jednej zmienne, dla mnie nie jest to wygodne, i trudniejsze do edycji. Ale nie o to chodzi.
Czyli np musze napisać jakiś separator algorytmu od grafu.
I pomyślałem, że może to tak działać:
1)Algorytm korzysta z klasy Space, która z kolei wykonuje wszystkie operacje na klasach poszczególnych grafów.
Klasa Space jest tylko jedna.
Klasy grafów implementują interfejs który narzuca im odpowiednie metody z ktorych będzie korzystała klasa Space jako separator.
2)Algorytm wykonuje operacje bezpośrednio korzystając z dołączonej do klasy algorytmu klasy w taki sposób:
public function construct(GraphInterface $graph,....)
{
$this -> graph = $graph;
}
Jednak rozwiązanie pierwsze wydaje się lepsze, bo gdy zmienie algorytm to zmieniam tylko klasę Space, i tak samo gdy zmienię obsługę grafu.
Które rozwiązanie ty byś mi pocił lub ktoś inny, jestem otwarty na propozycje.
Chyba, że macie coś ciekawszego.
Pozdrawiam Daniel