È non cattivo design per aggiungere un metodo del genere. Questo tipo di cose è in realtà molto normale quando le classi sono nella loro infanzia.
Ma le classi e le strutture dati sono un po 'diverse da come si pensa, e non si oppone o si esclude affatto l'altra. La maggior parte delle classi sono strutture di dati e molte strutture di dati sono classi. Le lezioni hanno molto più a che fare con la sintassi di una lingua - sono programmate direttamente in una lingua - mentre le strutture dati hanno più a che fare con il modo in cui intendi utilizzare determinate cose. Dici a un programma cos'è e non è una classe, ma in genere non dici a un programma quale sia e non è una struttura dati: tieni il passo da solo.
Una classe potrebbe comportare metodi - o potrebbe non esserlo. Potrebbe anche coinvolgere dati - o potrebbe non esserlo. Di solito coinvolgeranno entrambi (specialmente in linguaggi in stile Java, dove sono richiesti entrambi), ma questo non è sempre vero. Potresti persino avere una classe senza metodi né dati.
Senza entrare nei dettagli di OOP, una classe è per lo più solo una raccolta di metodi e / o dati. E una classe non deve avere membri pubblici, a proposito. Ho usato alcuni membri i cui membri erano tutti interni o privati, ad esempio.
Una struttura dati è leggermente diversa. È fondamentalmente un raggruppamento di dati che è stato strutturato in un modo particolare per uno scopo particolare. Questa potrebbe essere una classe. Ogni volta che vedi una classe con più di un dato, generalmente si tratta di una struttura di dati.
Come una classe, una struttura dati può contenere o rinunciare a metodi. A differenza di una classe, tuttavia, deve contenere una qualche forma di dati (anche se i dati sono solo un paio di variabili "vuote").
Puoi avere strutture dati che non sono classi. Ad esempio, immagina se hai due array: uno è un elenco di nomi di persone e uno è un elenco di cognomi delle persone. E se l'ennesimo elemento del primo array è il nome di qualcuno, allora l'ennesimo elemento del secondo array è il cognome di quella stessa persona. Anche se il programma e il linguaggio di programmazione possono non avere idea di questi due array sono collegati, lo fai personalmente, solo perché stai tenendo il passo con esso. Anche se questo non è un buon esempio di come di solito vuoi impostare le cose, questo costituisce comunque una struttura dati.
So che potrebbe essere stato un po 'lungo, ma spero che possa aiutarti.