È mai eccessivo creare classi / oggetti? [duplicare]

-2

Ho appena imparato a creare una classe o un oggetto in C ++ e sto praticando e imparando.

Sto scrivendo una versione basata su testo di un popolare gioco da tavolo e mi chiedevo se è eccessivo creare una classe per dadi a sei facce invece di creare una semplice funzione che genera due numeri casuali tra 1 e 6 e restituire la somma del due.

    
posta Alan K. Martinez 04.08.2015 - 07:06
fonte

2 risposte

2

C ++ supporta diversi paradigmi di programmazione (incluso);

  • Tecniche basate su OO
  • Programmazione generica e dei modelli
  • Programmazione di stile procedurale (proveniente da C)

L'utilizzo di una di queste tecniche laddove appropriato non sarà "eccessivo". La domanda più ampia è più quale design o modello sarebbe appropriato per il problema da risolvere, dato il contesto dell'attuale implementazione e i vincoli specifici del dominio ?

Dal momento che stai osservando questo da un esercizio di apprendimento, la creazione di una classe per i dadi andrebbe bene, l'oggetto si adatta bene a una cosa fisica, quindi scegli di farlo.

Creerei una classe in un'applicazione di produzione se tutto quello che volevo era di due numeri casuali - forse. Vorrei utilizzare una funzione che restituisce un std::pair ( std::pair<int,int> get_random(...) ) e fornire le funzioni con i requisiti di motore e distribuzione appropriati come argomenti, altrimenti disporre di tali argomenti in un oggetto per facilitare la gestione dello stato.

    
risposta data 04.08.2015 - 08:48
fonte
0

... overkill creating a class for six sided dice instead of creating a simple function generating two random numbers between 1 and 6 and returning the sum of the two.

Come sempre, dipende.

Non dici quale gioco stai implementando, ma userai solo mai i dadi 6 lati ? Se è così, quindi attenersi a una funzione. Se vuoi fare tutto "OO" con questo, così com'è, potresti trasformare questa funzione in un metodo statico su una classe helper.
Ma se volessi aggiungere "D10 e" D20 nel mix più tardi, allora una lezione potrebbe essere un punto di partenza molto migliore.

    
risposta data 04.08.2015 - 13:12
fonte

Leggi altre domande sui tag