A design pattern is a general, reusable solution to a commonly occurring problem in software. A design pattern is not a finished design that can be transformed directly into code. It is a description or template for solving a particular problem. Thinking in terms of design patterns allows you to formulate a high-level solution that is independent of the implementation details.
For example, the Training Management application uses a simplified version of the MVP pattern to increase the testability of the business logic that is in the Web Form code-behind files. These code-behind files are a convenient place to locate the event handlers and the view logic. However, the event handlers are private methods, and the forms must be rendered to test the view logic. Another problem is that the business logic is intermixed with the view logic. Factoring out the business logic into a separate presenter class allows you to unit test it in isolation. To learn more about common software design patterns.
three well-known design patterns that can help us.
- Model-View-Presenter Pattern
- Service Locator Pattern
- Model-View-ViewModel Pattern