- OOP 5대 설계 원리 중 SRP - 단일 책임의 원칙
하나의 메서드는 하나의 책임만 진다- 코드를 분리하는법
- 관심사
- 변하는 것과 (자주)변하지 않는 것
- 공통 코드
Model - View - Controller = MVC패턴
- 위 코드에서 만약 유효성 검사에 실패하게 되면 "yoilError" 를 반환
즉 결과로 보여줄 View가 yoilError로 지정되어 에러 내용이 출력된다
View를 출력과 분리하니, 상황에 따라(에러 발생) 다른 View를 사용할 수 있게 되었다
ex) 버튼에 따라 다른 형식으로 자료를 보여주는 방식 pdf, csv, excel
if (!isValid(year, month, day))
return "yoilError"; //에러시 출력할 jsp파일 지정
------
private boolean isValid(int year, int month, int day) {
return false;
}
char yoil = getYoil(year, month, day);
-----
private char getYoil(int year, int month, int day) {
Calendar cal = Calendar.getInstance();
cal.set(year, month -1, day);
int datOfWeek = cal.get(Calendar.DAY_OF_WEEK);//요일이 숫자로 나온다 1:일요일, 2:월요일
return " 일월화수목금토".charAt(datOfWeek);
}
model.addAttribute("year", year);
model.addAttribute("month", month);
model.addAttribute("day", day);
model.addAttribute("yoil", yoil);
return "yoil"; //출력할 jsp파일 지정, 반환타입 String으로
@RequestMapping("/getYoilMVC")
public ModelAndView main(int year, int month, int day) throws IOException {
ModelAndView mv = new ModelAndView(); //모델 생성
char yoil = getYoil(year, month, day);
mv.addObject("year", year); //결과 저장
mv.addObject("month", month);
mv.addObject("day", day);
mv.addObject("yoil", yoil);
mv.setViewName("Yoil"); //뷰 지정