introductory_java_desigin_patterns