이제 차근차근 역할에따라 클래스를 만들어서 역할 분담을 좀 해볼거야.
우리가 먼저 만들어야 할 클래스는 App, Article, Member, MemberController, ArticleController이 있어.
이제 하나하나 역할을 살펴보자.
App
Article
Main
Member
ArticleController
MemberController
그러면 뭔가 역할이 분담이 된 느낌이잖아? 앞으로 큰 프로젝트를 진행할 때 이렇게 분리를 해줘야지 뭐가 뭔지 알고 다른사람이 내 코드를 봤을 때 이해하기 편하고 얼마나 좋아?!
저는 안좋아요..
아까 MemberController랑 ArticleController랑 만들었지! 근데 우리가 Controller라는 상위 클래스를 만들어서 얘네들을 상속하도록 해볼거야.
여기서 더 복잡하게 한다고요..... 저한테 왜그러세요..//복잡하게가 아니라 더 편하게 하는거라니까?
컨트롤러에서는 뭐 하는걸까?
MemberController memberController = new MemberController(sc);
ArticleController articleController = new ArticleController(sc);
while (true) {
System.out.print("명령어) ");
String cmd = sc.nextLine().trim();
if (cmd.length() == 0) {
System.out.println("명령어를 입력하세요");
continue;
}
if (cmd.equals("exit")) {
break;
}
String[] cmdBits = cmd.split(" ");
String controllerName = cmdBits[0];
if (cmdBits.length == 1) {
System.out.println("명령어 확인 필요");
continue;
}
String actionMethodName = cmdBits[1];
if (controllerName.equals("article")) {
controller = articleController;
} else if (controllerName.equals("member")) {
controller = memberController;
} else {
System.out.println("지원하지 않는 기능입니다");
continue;
}
controller.doAction(cmd, actionMethodName);
이번에는 클래스들이 많아졌으니까 폴더로 묶어서 정리하는걸 해보자. 그리고 추가적으로 dto클래스도 만들거야.
아니 결벽증이라도 있으세요..? 정리를 너무 많이 하시넿ㅎㅎ
ArticleManager Package
controller Package
dto Package
util Package
패키지는 이렇게만 만들어주고 dto가 뭔지 알아보자.
DTO(Data Transfer Object, 데이터 전송 객체)란 그냥 뭐 내가 가지고있는 데이터들을 여기저기 전송해주는 역할이야
전체 코드가 궁금하면 gitHub로..
https://github.com/Yullc/AM_25_03