Chapter 2. Why We Need Design Patterns?
In this chapter, we will try to understand the necessity of choosing a pattern-based approach to software development. We start with some principles of software development, that one might find useful while undertaking large projects. The working example in this chapter starts with a requirements specification and progresses toward a preliminary implementation. We will then try to iteratively improve the solution using patterns and idioms, and come up with a good design that supports a well-defined programming Interface. During this process, we will learn about some software development principles that one can adhere to, including the following:
- SOLID principles for OOP
- Three key uses of design patterns
- Arlow/Nuestadt archetype patterns
- Entity, value, and data transfer objects
- Command pattern and factory method pattern
- Design by contract idiom and the template method pattern
- Facade pattern for API
- Leveraging the .NET Reflection API for plugin architecture...