Software Design Pattern By Example: Strategy
Explain Strategy Design Pattern in an easy-to-understand example
(I know the majority of this blog’s readers are testers or automation/DevOps engineers. This one is about software design.)
Table of Contents:· The Problem: GCD
· Preparation
∘ Implement individual algorithms
· Sub-optimal Design
· Strategy Pattern
· Apply Strategy pattern again
· Exercise
∘ A quick introduction to Object-Oriented in C++
The Problem: GCD
In mathematics, the greatest common divisor (GCD, also called the greatest common factor) of two or more integers (not all zero), is the largest positive integer that divides each of the integers. For example, the gcd of 8 and 12 is 4, the gcd of 6, 8, 12 is 2.
In this exercise, you implement at least two algorithms to solve the GCD of two integers x
and y
. The program will decide the use of algorithms dynamically based on the multiple of x, y
. For example, If x * y > 100000
using algorithm A
, otherwise B
. The decision logic does not matter, as long as the program demonstrates it can ‘choose’ a different algorithm.
Preparation
As always, start simple and make small progress.
- Implement 2+ GCD algorithms.
It is OK to start with procedural style (i.e. non-OO design). - Encapsulate implementations in classes
Wrap your implementations…