A set of software design principles and patterns that enable us to develop loosely coupled code.
Why the loose coupling of code
A couple of benefits from loosely coupled code is
- easy to extend,
- easy to test
- easy to maintain.
It also facilitates late binding and even though our code supports it we won’t be dealing with this in depth in this article.
Application architecture
Our application follows the mvvm pattern and thus we have the following layers
- View contains the UI elements of our application
- Presentation is our UI logic
- Data access interacts with our data store
- Data store is where our actual data resides