Attualmente sto imparando i vari approcci alla progettazione di applicazioni e c'è una cosa che non riesco davvero a capire.
Diciamo che ho un dispositivo fisico nella mia rete, una telecamera di sorveglianza IP. Ho bisogno di un modello che rappresenti le "telecamere di sorveglianza IP" per lavorare con loro nella mia applicazione, che potrebbe apparire come questa:
public class IPCamera {
public string Token { get; set; }
public IPAddress IPAddress { get; set; }
public string RtspUri { get; set; }
}
Ora, se voglio archiviare l'IPCamera in un database (ad esempio con Entity Framework), ho bisogno di forse altre proprietà e quindi un altro modello con:
public int Id { get; set; }
Oh .. Voglio accedere alla mia applicazione tramite un servizio WCF. Non posso usare l'oggetto "Indirizzo IP" qui perché non è molto adatto alla serializzazione, quindi ho bisogno di un altro modello con una classe IP personalizzata che memorizzi l'indirizzo IP come stringa.
E per ultimo, un client Android vuole accedere ai miei dati. Progetto un'API RESTful utilizzando WebApi2. Il cliente non è interessato alle telecamere RTSPUri, ma vuole sapere dello stato attuale (è online, è offline).
Mi chiedo: come nominare tutti questi modelli che non entrano in conflitto? Devo progettare un modello per ogni scopo / livello / servizio? E come collegarli / mapparli? Con il modello dell'adattatore?