GoF Design pattern samples