Guide for applying GoF design patterns (Adapter, Factory, Strategy, Observer, etc.) during code refactoring and decomposition