Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

6주차 미션/ 서버 4조 조동현 (SOLID ISP원칙 적용하여 살짝 다르게 작성) #41

Open
wants to merge 30 commits into
base: main
Choose a base branch
from

Conversation

mr8356
Copy link

@mr8356 mr8356 commented Nov 2, 2024

(일요일 밤에 강의 보고 바로 제출 낭만 있네요)
메서드 체이닝 부분 많이 얻어갑니다!!

AbstractController를 이용해서 구현하는것이 요구사항이었는데요.
Controller 마다 json, jsp 둘중 하나만 반환하는데 jsonView, jspView메서드 둘다 있는 인터페이스를 상속받으면
둘중 하나는 구현을 안하게 되고, 객체 지향 SOLID의 ISP(Interface Segregation Principle) 인터페이스 분리 원칙에 어긋난다고 생각했습니다.

이용하지 않는 메서드가 있으면 그 메서드 기준으로 분리하는것이 ISP 원칙이기 때문에
소신있게 AbstractController 인터페이스를 Jsp, Json Controller 인터페이스로 더 쪼개서 작성했습니다.
(물론 기존 요구사항대로도 할줄도 압니다!)

아래와 같이 분리한 후에

public interface JsonController extends Controller {
    abstract ModelAndView jsonView();
}
public interface JspController extends Controller {
    abstract ModelAndView jspView(String viewname);
}

일단 형식 상으로 AbstractController를 두 인터페이스의 상속체로 형식상으로 두었습니다.

public interface AbstractController extends JsonController, JspController {
}

jwp-controller 패키지 들어가시면 제가 어떻게 했는지 나옵니다!

리뷰, 의견 받습니다

맘껏 비판해주세요!

lyouxsun and others added 30 commits October 7, 2024 17:00
@mr8356 mr8356 requested a review from JGoo99 November 2, 2024 15:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants