Some Design Patterns implemented in JAVA