CSC/ECE 517 Fall 2010/ch3 3h az: Difference between revisions
Jump to navigation
Jump to search
Line 9: | Line 9: | ||
=Introduction= | =Introduction= | ||
A design pattern is a general reusable solution to a commonly occurring problem in software design. | |||
Strategy Pattern in one such pattern which helps to use multiple algorithms interchangeably to reduce | |||
multiple conditions statements . This helps in making the code more maintainable. | |||
The intent of Strategy pattern would be to define a family of algorithms, encapsulate each one, and | |||
make them interchangeable. Strategy lets the algorithm vary independently from clients that use it. | |||
As an algorithm evolves to handle more and more situations, it can become very complex and difficult | |||
to maintain, Strategy pattern can be used to resolve this situation. | |||
==When to use Strategy Pattern== | ==When to use Strategy Pattern== | ||
- Many related classes differ only in their behavior. | |||
- You need different variants of an algorithm. For example, defining different algorithms based on space-time tradeoffs. | |||
- A class defines many behaviors, and these appear as multiple conditional statements in its operations. | |||
Instead, move related conditional branches into their own Strategy class. | |||
==Generic Implementation and participant of Strategy pattern:== | |||
Strategy: | |||
– Declares an interface common to all supported algorithms. Context uses this interface to call the algorithm defined by a | |||
ConcreteStrategy. | |||
ConcreteStrategy | |||
– Implements the algorithm using the Strategy interface. | |||
Context | |||
– Is configured with a ConcreteStrategy object | |||
– Maintains a reference to a Strategy object | |||
– May define an interface that lets Strategy access its data. | |||
=Illustration of Strategy pattern in Dynamic Object Oriented Language language= | =Illustration of Strategy pattern in Dynamic Object Oriented Language language= |
Revision as of 21:29, 6 October 2010
Objective
Objective of this Wiki Chapter, the reader should be get overview of # Strategy pattern, when and how to use strategy pattern. # Implementation of strategy pattern in Dynamic, static object oriented language by going through example presented.
## I couldn't make the two statement bullet statements !! pls change the above to
Introduction
A design pattern is a general reusable solution to a commonly occurring problem in software design. Strategy Pattern in one such pattern which helps to use multiple algorithms interchangeably to reduce multiple conditions statements . This helps in making the code more maintainable.
The intent of Strategy pattern would be to define a family of algorithms, encapsulate each one, and make them interchangeable. Strategy lets the algorithm vary independently from clients that use it. As an algorithm evolves to handle more and more situations, it can become very complex and difficult to maintain, Strategy pattern can be used to resolve this situation.
When to use Strategy Pattern
- Many related classes differ only in their behavior. - You need different variants of an algorithm. For example, defining different algorithms based on space-time tradeoffs. - A class defines many behaviors, and these appear as multiple conditional statements in its operations. Instead, move related conditional branches into their own Strategy class.
Generic Implementation and participant of Strategy pattern:
Strategy:
– Declares an interface common to all supported algorithms. Context uses this interface to call the algorithm defined by a ConcreteStrategy.
ConcreteStrategy
– Implements the algorithm using the Strategy interface.
Context
– Is configured with a ConcreteStrategy object – Maintains a reference to a Strategy object – May define an interface that lets Strategy access its data.