Sono uno sviluppatore junior e sto lavorando a un progetto per animali domestici che voglio imparare il più possibile da.
Ho il seguente scenario:
C'è un servizio WCF che uso per recuperare e aggiornare i dati, diciamo Cars. Quindi si chiama CarWCFService e ha un GetCars (), SaveCar (), .... Implementa l'interfaccia ICarService . Questo non è il servizio effettivo di WCF ma è più simile a un wrapper attorno ad esso.
Dopo aver recuperato i dati dal servizio, voglio memorizzarli nella memoria locale, come cache. Ho creato una classe per questo chiamato CarCacheService che implementa anche l'interfaccia ICarService . (Spiegherò in seguito perché implementa ICarService)
Non voglio che il codice client chiami queste implementazioni. Invece, voglio creare una terza implementazione per ICarService che tenta di leggere dal CarCacheService prima di chiamare WCFCarService , memorizza i dati recuperati nel < strong> CarCacheService , ecc.
3 domande:
- Come nomino questa terza classe? Stavo pensando a qualcosa di semplice come CarService . Questo in realtà non dice cosa fa esattamente il servizio, comunque. Il nome delle altre classi è buono?
- Questa denominazione e questa architettura sarebbero ovvie per i futuri programmatori? Questa è la mia più grande preoccupazione.
- Questa architettura ha senso? La ragione per cui implemento ICarService su CarCacheService è principalmente perché mi consente di simulare WCFService durante il debug. Posso archiviare dati fittizi in un'istanza CarCacheService e passarli a CarService , insieme a un (altro) vuoto CarCacheService . Se ho reso pubblico CacheCarService e WCFService , potrei consentire al codice client di decidere se eliminare la cache e lavorare direttamente su WCFService .