Как оптимизировать мой код с помощью temple method, generic method или другого метода? Теперь я должен написать аналогичный код три раза
Теперь я хочу отправить сообщение людям, которые могут быть учеником,учителем или школьным учителем,и у всех них есть телефон, имя и availdSendMsgCount.Прежде чем отправить сообщение,которое означает вставить данные в базу данных, я должен решить, можно ли их отправить или нет.Поэтому я пишу код следующим образом:
if(sendType=SendType.student){ List<Student> students=tStudentServiceImpl.queryByParam(conditionMap); sendPhoneCout=students.size(); checkSendNumber(availdSendMsgCount,sendPhoneCout); Log log=logMsgSend(content,sendPhoneCout,sendType); for (Student vo : students) sendMsgItem(content,vo.getPhone(),vo.getName(),vo.getId(),log.getId()); } else if(sendType=SendType.teacher){ List<Teacher> teachers=tTeacherServiceImpl.queryByParam(conditionMap); sendPhoneCout=teachers.size(); checkSendNumber(availdSendMsgCount,sendPhoneCout); Log log=logMsgSend(content,sendPhoneCout,sendType); for (Teacher vo : teachers) sendMsgItem(content,vo.getPhone(),vo.getName(),vo.getId(),log.getId()); } else{ List<Schoolmaster> schoolmasters=tSchoolmasterServiceImpl.queryByParam(conditionMap); sendPhoneCout=schoolmasters.size(); checkSendNumber(availdSendMsgCount,sendPhoneCout); Log log=logMsgSend(content,sendPhoneCout,sendType); for (Schoolmaster vo : schoolmasters) sendMsgItem(content,vo.getMasterPhone(),vo.getMasterName(),vo.getId(),log.getId()); }
Я думаю, что этот код плохой.Но как оптимизировать?
Что я уже пробовал:
Я попытался извлечь общий код в
checkSendNumberи
logMsgSend-но я думаю, что все равно будет плохо.