As nowadays, in its era of modernization, smart devices like phones and tablets are getting more famous so its operating systems are getting precious. Different technologies, design, and architecture are used in the software development process. The top 3 patterns are:
1. MVC – Model View Controller
2. MVP – Model View Presenter
3. MVVM – Model View View-Model
MVP and MVVM are by-products of MVC. The main difference between MVC, MVP, and MVVM is the dependency of each layer on other layer and they’re bound.
In MVC, the view is on the top of the architecture then the controller lies beside the view. After the controller, the Model sits below it. Therefore, Views has knowledge of Controller and Controller has knowledge of Model. So, View can directly access Models. In this pattern, there may have security and performance costs that depend upon the complexity of the application.
In MVP, the controller’s role is replaced with the Presenter. Presenter and View both are on the same level. Here, Presenter listens to all the events of View and Model and actions between them. But there is no mechanism for binding View and ViewModel. So instead of depending on View for implementation, the Presenter can interact with Views.
In MVVM, permits us to build View-specific subsets of Model. This contains logic information and avoids the need to bare the complete Model to View. In this, ViewModel is not required to reference view, the way Presenter does in MVP. In this View is used to expose the data contained in Model. And abstraction of View means less logic required.
The complexity of interpretation required may change: it might be so simple or more complex. This issue occurs only in MVVM, but MVC doesn’t have any issue like this as the entire Models are readable and all manipulations like this can be avoided.
Click Here To Read More Blogs.