1) In MVC , there is the Model , View , Controller which is in essence a three layer architecture with View on top , Controller in the middle , Model on the bottom and all three layers are only able to communicate with the layers above and beneath them only which is exactly the same as layered architecture . What is the actual difference between them ??
Sono componenti distinti dell'architettura. In teoria, ognuno può essere scambiato senza influenzare gli altri.
Ad esempio, il visualizzatore ha due scopi:
- Consenti all'utente di visualizzare il modello.
- Consenti all'utente di modificare / aggiornare il modello.
Due visualizzatori possono differire in:
- Cosa permettono la visualizzazione dell'utente e i meccanismi per visualizzarli.
- Cosa permettono all'utente di cambiare e ai meccanismi forniti per cambiare.
Se esiste un business case per la presenza di due viewers, non ci sono ostacoli tecnici per supportare entrambi.
Se esiste un business case per sostituire il visualizzatore esistente con un altro visualizzatore, non ci sono ostacoli tecnici per farlo.
Il Controller funge da livello API per costruire, interrogare e aggiornare gli oggetti nel modello. Parlando da uno sfondo CAD, il livello API potrebbe fornire funzioni a:
- Sfaccettatura di una parte per scopi di visualizzazione.
- Fornisci query geometriche, ad esempio il punto più vicino sulla faccia, dato un altro punto.
- Calcola l'intersezione di due superfici per definire il bordo condiviso di due facce.
- Etc.
Il controller non si occupa di chi richiede una determinata azione. Se supporta l'azione, lo esegue. Aggiornamenti e miglioramenti al controller possono essere resi indipendenti dal Viewer e dal Modello.
Il modello è i puri dati dell'applicazione. Server i dati sul controller. È il meno flessibile del lotto. È molto facile rompere il controller apportando modifiche al modello che non sono retrocompatibili o introducendo bug durante la modifica del modello. Anche se è separato dal Viewer e dal Controller, qualsiasi modifica al Modello dovrà essere fatta attentamente in modo che il Controller e il Visualizzatore siano meno interessati da esso.
2) Isn't MVC a form of client server architecture ??
Potrebbe essere. Nella pura architettura del server client, il client e il server tendono ad essere meno legati rispetto a un'architettura MVC. Un browser Web è raramente collegato al server HTTP. D'altra parte, la GUI di un'applicazione CAD è molto chiusa legata al modello sottostante. Non esiste un'interfaccia generica con interfaccia grafica che possa essere utilizzata per qualsiasi pacchetto CAD.
3) Master-Slave seems exactly like 2 tier client-server where the server is the Master and the client is the slave , I dont understand how Master-Slave differs from Client-Server
È l'opposto. Il client è il master e il server è lo slave. Il server risponde alle richieste fatte dal client.