Strategy Pattern
       Shahriar Iqbal Chowdhury
            Monjurul Habib


         Code Name: Remington
 http://www.facebook.com/groups/netter/
What is Strategy




A plan of action or policy designed to achieve a major or overall aim.
Why Need Pattern for Strategy
• The Strategy pattern is known as a behavioural pattern - it's used to
  manage algorithms, relationships and responsibilities between
  objects.
• The Strategy pattern is to be used where you want to choose the
  algorithm to use at runtime. A good use of the Strategy pattern would
  be saving files in different formats, running various sorting
  algorithms, or file compression
Strategy Pattern Says
• Define a family of algorithms, encapsulate each one, and make them
  interchangeable. Strategy lets the algorithm vary independently from
  clients that use it


                                OR
Why, When and How?
1.   Allow a class to maintain a single purpose.
2.   Switch statement
3.   Adding a new implementation will cause a class file to be modified
4.   Create a class for each strategy
5.   Use a common interface for each strategy
Class Diagram
Pattern less Implementation
Context   IStrategy
Concrete Strategy UPS   Concrete Strategy USPS
WALL-E & Strategy




  Strategy : Capable to Identify Object   Strategy : Identify and Recycle
                                                      Garbage
Strategy : Identify Friend   Strategy : Identify Girl Friend 
Strategy : Identify New Hope For
             Mankind
Strategy @.Net Framework
• Array and ArrayList provide the capability to sort. Sort method will
  use the IComparable implementation for each element to handle the
  comparisons. Leaving the choice of comparison algorithm up to the
  user of the class like this is an example of the Strategy pattern.
• The use of a Predicate<T> delegate in the FindAll<T> method lets the
  caller use any method as a filter for the List<T> so long as it takes the
  appropriate object type and returns a Boolean.
That’s It!!

Strategy Pattern

  • 1.
    Strategy Pattern Shahriar Iqbal Chowdhury Monjurul Habib Code Name: Remington http://www.facebook.com/groups/netter/
  • 2.
    What is Strategy Aplan of action or policy designed to achieve a major or overall aim.
  • 3.
    Why Need Patternfor Strategy • The Strategy pattern is known as a behavioural pattern - it's used to manage algorithms, relationships and responsibilities between objects. • The Strategy pattern is to be used where you want to choose the algorithm to use at runtime. A good use of the Strategy pattern would be saving files in different formats, running various sorting algorithms, or file compression
  • 4.
    Strategy Pattern Says •Define a family of algorithms, encapsulate each one, and make them interchangeable. Strategy lets the algorithm vary independently from clients that use it OR
  • 5.
    Why, When andHow? 1. Allow a class to maintain a single purpose. 2. Switch statement 3. Adding a new implementation will cause a class file to be modified 4. Create a class for each strategy 5. Use a common interface for each strategy
  • 6.
  • 7.
  • 8.
    Context IStrategy
  • 9.
    Concrete Strategy UPS Concrete Strategy USPS
  • 10.
    WALL-E & Strategy Strategy : Capable to Identify Object Strategy : Identify and Recycle Garbage
  • 11.
    Strategy : IdentifyFriend Strategy : Identify Girl Friend 
  • 12.
    Strategy : IdentifyNew Hope For Mankind
  • 13.
    Strategy @.Net Framework •Array and ArrayList provide the capability to sort. Sort method will use the IComparable implementation for each element to handle the comparisons. Leaving the choice of comparison algorithm up to the user of the class like this is an example of the Strategy pattern. • The use of a Predicate<T> delegate in the FindAll<T> method lets the caller use any method as a filter for the List<T> so long as it takes the appropriate object type and returns a Boolean.
  • 14.