BusinessModel : ho una gelateria e ho progettato corsi per fare i miei dati finanziari basati sui fornitori in base ai tipi di settore (linee di business). Vendo gelati di molti tipi, che compro da diversi fornitori, e alla fine del mese cerco di riconciliare il mio conto per linea di business utilizzando le classi che ho creato per il calcolo dei costi. Il metodo ProcessFile contiene l'algoritmo specifico per il calcolo LOB.
Sto cercando di pensare a un modo corretto per affrontare questo problema. Tuttavia, sto incontrando un problema con le classi di denominazione e non sono esattamente sicuro di quale prospettiva del modello di progettazione utilizzare. Mi piacerebbe una soluzione che sia un motore: riceve input, processa e produce output.
Ecco la mia interfaccia per iniziare.
public interface IFileProcessing
{
string InputFilePath { get; set;}
string OutputFilePath { get; set;}
string ProcessedFilePath { get; set; }
string ExtractionFieldsFromWebService{ get; set; }
void ProcessFile(string FileName, string FilePath);
}
Tutto questo sta accadendo sulla base di 5 diversi modelli (linea di business), alias le classi che ho definito. Diciamo per esempio, Le mie classi gestiscono il mio calcolo dei miei costi
public class IceCreamLOB : IFileProcessing
public class FrozenCustardLOB : IFileProcessing
public class GelatoLOB: IFileProcessing
public class FrozenCustard: IFileProcessing
Finora tutto è generico per la linea di business menzionata sopra. La complessità arriva quando mi viene chiesto di progettare classi specifiche per i fornitori, come ad esempio BreyersLOB o KlondikeLOB, che è il mio account più grande e questi account richiedono specifiche di elaborazione speciali.
Non so se dovrei nominare le mie classi specifiche per fornire fornitori.
Le mie domande sono tutte correlate a questo:
- Come posso mantenere l'elaborazione logica specifica per un fornitore in una classe senza nominare la classe un fornitore specifico? C'è un buon modello quando ti imbatti in una situazione come questa?
- Come faccio a ridimensionarlo senza usare l'ereditarietà o devo usarlo?
- Quali situazioni dovrebbero indicare le tue classi specifiche per il fornitore / partner commerciale con cui lavori? Come nel mio esempio, KlondikeLOB e BreyersLOB