Nella mia azienda, stiamo pensando di riscrivere la nostra logica aziendale e il database per avere un'architettura migliore dopo anni di crescita organica e imprevedibile, che ha portato all'inevitabile incubo di manutenzione.
Il modello di business è quello in cui, diciamo, il cookie scorre attraverso più passaggi, modificando gli stati lungo la strada. Viene ricevuto crudo, cotto e potenzialmente diviso in due o più cookie più piccoli a seconda dell'ordine. A questo punto, una delle due cose potrebbe accadere: una, il cookie oi cookie sono considerati finiti e inviati al cliente, o due, i cookie richiedono elaborazione esterna (aggiunta di glassa, aggiunta di colorante alimentare, taglio a un disegno (c'è nessun limite teorico ad un cambiamento di elaborazione esterno ad un cookie ma cambia sempre le proprietà fisiche)), da cui viene inviato direttamente al cliente o da noi per la spedizione. Il cliente può rifiutare i cookie se non li trova nei loro standard, e quindi possiamo archiviare e tentare di rivendere i cookie a un cliente meno esigente e / o inviarli nuovamente all'elaborazione esterna secondo il capriccio del cliente.
Il modo in cui attualmente funziona il nostro sistema è inizialmente assegnargli un numero di cookie grezzo, quindi cuocerlo e / o tagliarlo e assegnare al / ai cookie risultante un numero di cookie finito, uno per ciascun cookie. Tuttavia, non esiste un terreno comune tra qualsiasi tipo di cookie, risultando in un sacco di codice aggiuntivo.
Sto provando a proporre un approccio orientato agli oggetti. Sono appena uscito dal college, mentre i miei colleghi sono più o meno 30 o più vecchi di me; ne sanno poco e alcuni sono riluttanti a cambiare, quindi il mio modello deve essere abbastanza solido. Ho lavorato con esso accademicamente, ma mai praticamente, e soprattutto non quando si monitora la forma di un flusso di un oggetto specifico. Potrei essere un po 'fuori dalla mia comprensione, ma credo che OO sia la scelta migliore per questo problema.
Ho un diagramma UML che mostra la mia gerarchia di classi proposta. Ogni tipo di cookie che può essere istanziato ha accesso a una funzione che lo trasforma nel cookie del passaggio successivo. È un modo corretto di farlo? Sarebbe meglio avere queste funzioni di toCookie () accessibili tramite la classe Cookie astratta statica?
Non preoccuparti troppo del posizionamento del metodo ereditato, sto solo cercando di capire come gli oggetti si trasformano qui.