add java design pattern samples