Model widokowy to coś, co dodaje kolejny poziom abstrakcji, na wypadek, gdyby nie całkowicie ufałeś swojemu kodowi prezentacji (lub po prostu znajdziesz bardziej elegancki sposób tego enkapsulacji).
Oznacza to, że jeśli klasa Person
ma metodę Delete
lub właściwość SSNumber
, ty chcieć nie zdać ten przedmiot do widzenia, jak ten, koncepcyjnie, umożliwia to nazwać Usuń lub wyświetlić SSN, które muszą nie być zdolnym do.
Aby uniknąć tej sytuacji, należy utworzyć inną klasę, PersonViewModel
, która zawiera tylko informacje/metody, które można bezpiecznie wywołać z widoku.
Ma to niewiele wspólnego z logiką modelu z aplikacji MVC. Możesz utworzyć oddzielny projekt dla swojego modelu i odnieść go do swojej aplikacji internetowej, niezależnie od tego, czy używasz enkapsulacji ViewModel. Zachęcają do tego książki, które czytałem do tej pory.