Domanda sulla progettazione della classe
Sto cercando di trovare un buon modo per progettare il mio sistema di classe.
Ho una classe Product
per calcolare varie specifiche del prodotto. Ho due gruppi di modelli di prodotto, ciascuno contenente diversi numeri di modello: {10, 20, 30} e {50, 60, 70}. Condividono alcune caratteristiche simili (vale a dire il modo in cui viene calcolato il peso) ma hanno calcoli aggiuntivi del prodotto diversi (ad esempio alcune funzionalità dipendono dalla lunghezza del prodotto e altre no, a seconda del gruppo di modelli)
Il modello di classe che ho attualmente è Product
principale per tutti i modelli (in realtà originariamente solo per 50, 60, 70) e un modello specifico Product10
è stato aggiunto in seguito e funziona solo per il modello 10. Ora, una nuova aggiunta ha introdotto i modelli 20 e 30, che sono simili al modello 10. Invece di aggiungerli come classi separate, quasi identiche a 10, ho pensato che fosse il momento di riprogettare.
problema
Nella mia attuale implementazione, la classe Product10
è alimentata dalla principale Product
class (responsabile per "la maggior parte dei modelli") e Product10
è la più strana. Forse va bene, ma ora sto ottenendo più numeri di modello simili a Product10
e sto cercando un modo migliore per strutturare il mio codice.
Attualmente vedo che ci sono diversi modi per progettarlo.
- crea una classe per ogni modello (potrebbe essere uno spreco)
- crea una "classe di Dio" che contiene il codice per tutti i modelli (la classe può essere gonfia)
- crea sottogruppi per i modelli, ovvero una classe che copre un insieme di modelli come {10, 20, 30} o {50, 60, 70}
- qualcos'altro.
Quello che cerco
Cerco un buon modo di utilizzare il design OO per la mia situazione specifica ... Ovvero,
- Penso che sia una buona idea avere una classe generica di qualche tipo
- Non sono sicuro se dovrei creare una classe per rappresentare "un insieme di modelli simili" o se trattare i modelli separatamente
Il mio obiettivo è creare una classe appropriata in base al numero di modello.
Quale potrebbe essere una buona decomposizione di classe?