Design Pattern for StrategyPattern