Member 10637246 Ответов: 0

Как оптимизировать мой код с помощью 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
-но я думаю, что все равно будет плохо.

0 Ответов