자료구조

TIL 38th day

keepgoing 2021. 11. 28. 19:30

MVC 프레임워크 v5(어댑터 패턴)

  • Object handler가 있어야 원하는 인터페이스를 적용 가능
  • controller.process()에는 ControllerV3 인터페이스가 적용되므로 파라미터에 값에 Map<String, String 값이 필요함.>
    • Map<String, String>은 빈 Map이므로 요청 받은 값을 Map에 채워주기 위해 createParamMap 메소드를 선언하고 변수로 설정해준 다음 process안에 인자 값으로 넣음
  • 만약 ControllerV3가 필요한 핸들러라고 가정해보자. 이 때는 ControllerV3에 적합한 handle 로직을 짜야하기 때문에 return을 mv로 변환해서 반환해줘야 한다.
  • 어댑터 선택 과정은 이러하다 supprots 메소드를 통해서 적합한 인터페이스 규격을 찾아주고 그 규격을 handle에 넘겨준다. V3 인터페이스를 이용할 때 handle에서는 V3를 받기 위해 Map<>이 필요하고, 빈 Map<> 을 채우기 위해 요청 받은 파라미터 값을 넣어주는 메서드를 작성하고 그 값을 인수로 변환해준뒤 controller.process에 담아준다. 그리고 이 담아준 값을 ModelView 타입으로 반환하는 변수로 만들어줘서 return 해주면된다.
  • 반면에, ControllerV4는 String 타입으로 반환하기 때문에 return이 mv로 변환할 필요가 없다.