Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [OO] Correttezza formale

    Sto implementando una libreria che permette di simulare il comportamento di un robot. La libreria offre una classe RoboSim che permette di controllare la simulazione.
    La domanda é: é piú formalmente corretto implementare dei metodi che permettano all'utente di usare la stessa istanza di RoboSim per due simulazioni (cioé, resettando tutto e ricominciando) o lasciare che sia l'utente a distruggere la vecchia instanza creandone una nuova per ogni simulazione?

    a me sembra molto piú pulita la seconda... voi che dite?
    To understand recursion, we must first understand recursion

  2. #2
    Utente bannato
    Registrato dal
    Feb 2004
    Messaggi
    2,803
    dalle poche info che dai sento di risponderti che sia più corretto usare un'instanza per ogni simulazione, ma aiuterebbe sicuramente qualche spiegazione in più o il codice

  3. #3
    il codice é lungo... non penso abbiate voglia di leggerlo.. =) (e parte non l'ho ancora scritto, quindi sarebbe difficile postarlo.. =) ). In ogni caso se serve lo posto tutto.


    Questo é l'header di robosim:
    codice:
    class RoboSim
    {
    	public:
    		RoboSim(char* filename);
    		SDL_Surface* getSurface(); 
    		int setRobotPosition(int, int, int);
    		int start_pause();
    		bool isRunning();
    	
    	private:
    		bool first_start;
    		bool running;
    		
    		SDL_Thread *GuiThread;
    		SDL_Thread *WorldThread;
    		SDL_Thread *RoboThread;
    		
    		SDL_Surface* surface;
    		
    		robot_hw_t *robot_hw;
    		space_t *space;
    		robot_t *robot;
    		world_t *world;
    		gui_t *gui;
    }
    Quello che succederá_(non ho ancora scritto quel pezzo) é che surface (la superfice dove renderizzano le OpenGL) verrá attaccata a una WidgetGTK, e poi con la funzione start_pause() si gestisce la simulazione.
    To understand recursion, we must first understand recursion

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,296
    Originariamente inviato da Infernal
    La domanda é: é piú formalmente corretto implementare dei metodi che permettano all'utente di usare la stessa istanza di RoboSim per due simulazioni (cioé, resettando tutto e ricominciando) o lasciare che sia l'utente a distruggere la vecchia instanza creandone una nuova per ogni simulazione?
    Secondo me, il problema della formalità è relativo: la correttezza dipende da ciò che devi fare o dai compiti cui la classe è preposta... non esiste una risposta valida in senso assoluto.

    Se invece della simulazione la classe rappresentasse il robot, allora una nuova istanza per ciascun robot simulato è corretto, altrimenti è opinabile.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  5. #5
    Beh... diciamo che se viene rilanciata una simulazione é perché viene ricaricato il codice che gira sul robot (quindi anche l'oggetto robot viene modificato), altrimenti basterebbe rimettere il robot nella posizione iniziale =) (che si puó fare senza ri-istanziare RoboSim).

    Il che mi porterebbe a pensare che avrebbe senso far ricaricare tutto.....

    bene... se nessuno ha altri consigli io tengo questa per buona. Se non va bene.... boh.. la rifaró


    thanks
    To understand recursion, we must first understand recursion

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.