Patterns, And Practices In C#... - Agile Principles,

Patterns provide "blueprints" for solving recurring problems in an Agile way.

Defines a family of algorithms. In C#, this is often implemented by passing different interface implementations (e.g., IPaymentStrategy ) into a service at runtime. Agile principles, patterns, and practices in C#...

Software entities should be open for extension but closed for modification. Use abstract classes and interfaces to allow new behavior without breaking existing code. Agile principles, patterns, and practices in C#...

make adhering to the Dependency Inversion principle a default behavior rather than an afterthought. Agile principles, patterns, and practices in C#...

and Generics enable concise, readable code that is easy to modify.