Problem: hard to expand and change
if...else if... else if...
switch...case...case...
Approch to achive Run time dynamic load dll
>>virtual method (protected)
>>delegation
>>reflection
===>Strategy
delegation: once fulfil input parameter and return value are the same, you can use:event handler
interface: classes need to have same abstract meaning
template method: strategy is not a class instance, only a algorithm, template method is a class, has relationship between parent class and child class. parent class has the whole workflow and child class change one or more steps.
Without Strategy:
With Strategy: