public class MainProgram {
    public static void main(String[] args) {
        // Ustvarimo nekaj opazovalcev
        // Opazovalci so objekti, ki bodo obveščeni o spremembah ceste
        Opazovalec opazovalec1 = new OpazovalecImpl("Opazovalec 1");
        Opazovalec opazovalec2 = new OpazovalecImpl("Opazovalec 2");

        // Ustvarimo nekaj cest
        // Ceste so primeri objektov, ki jih bomo spremljali
        Cesta cesta1 = new Cesta("Cesta A", 10.0, "Dobra");
        Cesta cesta2 = new Cesta("Cesta B", 5.5, "Slaba");

        // Dodamo opazovalce na ceste
        // Opazovalce registriramo, da prejemajo obvestila o spremembah na cesti
        cesta1.dodajOpazovalca(opazovalec1);
        cesta1.dodajOpazovalca(opazovalec2);

        // Izpišemo začetno stanje
        // Prikazujemo začetne informacije o cestah pred kakršnimi koli spremembami
        System.out.println(cesta1);
        System.out.println(cesta2);

        // Spremenimo lastnosti ceste
        // Posodabljamo stanje ceste in dolžino, kar bo sprožilo obvestila za opazovalce
        cesta1.setStanje("Odlična");
        cesta2.setDolzina(6.0);

        // Izpišemo spremenjene lastnosti
        // Prikazujemo posodobljene informacije o cestah, da preverimo spremembe
        System.out.println(cesta1);
        System.out.println(cesta2);
    }
}
