Design Pattern:

The Strategy Pattern defines a family of algorithms,encapsulates each one,and makes them interchangeable. Strategy lets the algorithm vary independently from clients that use it.

Design Principles:

1. Identify the aspects of your application that vary and separate them from what stays the same.

2. Program to an interface, not an implementation.

3. Favor composition over inheritance.


1. Knowing the OO basics does not make you a good OO designer.

2. Good OO designs are reusable,extensible and maintainable.

3. Patterns show you how to build systems with good OO design qualities.

4. Patterns are proven object oriented experience.

5. Patterns don’t give you code,they give you general solutions to design problems.You apply them to your specific application.

6. Patterns aren’t invented,they are discovered.

7. Most patterns and principles address issues of change in software.

8. Most patterns allow some part of a system to vary independently of all other parts.

9. We often try to take what varies in a system and encapsulate it.

10. Patterns provide a shared language that can maximize the value of your communication with other developers.