Skip to content

Commit 99fcb66

Browse files
committed
refactor: 채널 선택 책임을 ChannelMenu로 이전
1 parent 28ecb23 commit 99fcb66

File tree

2 files changed

+31
-39
lines changed

2 files changed

+31
-39
lines changed

src/main/java/com/sprint/JavaApplication3.java

+7-20
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package com.sprint;
22

3-
import com.sprint.mission.discodeit.entity.Channel;
43
import com.sprint.mission.discodeit.menu.ChannelMenu;
54
import com.sprint.mission.discodeit.menu.MessageMenu;
65
import com.sprint.mission.discodeit.menu.UserMenu;
@@ -24,30 +23,18 @@ public static void main(String[] args) {
2423
FileChannelRepository fileChannelRepo = new FileChannelRepository();
2524
FileMessageRepository fileMessageRepo = new FileMessageRepository();
2625

27-
UserService userServiceFile = new BasicUserService(fileUserRepo);
28-
ChannelService channelServiceFile = new BasicChannelService(fileChannelRepo);
29-
MessageService messageServiceFile = new BasicMessageService(fileMessageRepo);
26+
UserService userService = new BasicUserService(fileUserRepo);
27+
ChannelService channelService = new BasicChannelService(fileChannelRepo);
28+
MessageService messageService = new BasicMessageService(fileMessageRepo);
3029

31-
UserMenu userMenu = new UserMenu(sc, userServiceFile);
32-
MessageMenu messageMenu = new MessageMenu(sc, messageServiceFile);
30+
UserMenu userMenu = new UserMenu(sc, userService);
31+
ChannelMenu channelMenu = new ChannelMenu(sc, channelService);
32+
MessageMenu messageMenu = new MessageMenu(sc, messageService);
3333

3434
userMenu.loginUser();
3535

36-
System.out.println("모든 채널 정보를 출력합니다.");
37-
channelServiceFile.outputAllChannelInfo();
38-
System.out.println("들어가실 채널 번호를 선택해 주세요.");
39-
int channelNumber = Integer.parseInt(sc.nextLine());
40-
Channel selectedChannel = channelServiceFile.getChannelByNumber(channelNumber);
41-
42-
if (selectedChannel == null) {
43-
System.out.println("유효하지 않은 채널 번호입니다. 프로그램을 종료합니다.");
44-
return;
45-
}
46-
47-
ChannelMenu channelMenu = new ChannelMenu(sc, channelServiceFile, selectedChannel);
48-
4936
while (true) {
50-
System.out.println("원하는 기능을 입력 해 주세요.");
37+
System.out.println("\n원하는 기능을 입력해 주세요.");
5138
System.out.println("1. 내 정보\t2. 채널 정보\t3. 메시지\t4. 로그아웃");
5239
int choice = Integer.parseInt(sc.nextLine());
5340

src/main/java/com/sprint/mission/discodeit/menu/ChannelMenu.java

+24-19
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,23 @@ public class ChannelMenu {
99
private final ChannelService channelService;
1010
private Channel currentChannel;
1111

12-
public ChannelMenu(Scanner scanner, ChannelService channelService, Channel currentChannel) {
12+
public ChannelMenu(Scanner scanner, ChannelService channelService) {
1313
this.sc = scanner;
1414
this.channelService = channelService;
15-
this.currentChannel = currentChannel;
1615
}
1716

1817
public void run() {
18+
19+
System.out.println("모든 채널 정보를 출력합니다.");
20+
channelService.outputAllChannelInfo();
21+
System.out.println("들어가실 채널 번호를 선택해 주세요.");
22+
int channelNumber = Integer.parseInt(sc.nextLine());
23+
currentChannel = channelService.getChannelByNumber(channelNumber);
24+
if (currentChannel == null) {
25+
System.out.println("유효하지 않은 채널 번호입니다.");
26+
return;
27+
}
28+
1929
while (true) {
2030
System.out.println("1. 채널 생성\t2. 현재 채널 정보 출력\t3. 모든 채널 정보 출력\t4. 채널 이름 수정\t5. 채널 삭제\t6. 채널 변경\t7. 이전 메뉴");
2131
int n = Integer.parseInt(sc.nextLine());
@@ -29,24 +39,19 @@ public void run() {
2939
case 2 -> channelService.outputOneChannelInfo(currentChannel);
3040
case 3 -> channelService.outputAllChannelInfo();
3141
case 4 -> {
32-
if (currentChannel != null) {
33-
System.out.println(
34-
"현재 접속중인 채널은 " + currentChannel.getChannelName() + "입니다. 새로운 채널 이름을 입력해 주세요.");
35-
String updateChannelName = sc.nextLine();
36-
channelService.updateChannelName(currentChannel, updateChannelName);
37-
}
42+
System.out.println("현재 접속중인 채널은 " + currentChannel.getChannelName() + "입니다. 새로운 채널 이름을 입력해 주세요.");
43+
String updateChannelName = sc.nextLine();
44+
channelService.updateChannelName(currentChannel, updateChannelName);
3845
}
3946
case 5 -> {
40-
if (currentChannel != null) {
41-
System.out.println(currentChannel.getChannelName() + " 채널을 삭제합니다.");
42-
channelService.deleteChannelName(currentChannel);
43-
System.out.println("정상적으로 채널이 삭제됐습니다. 변경하실 채널 번호를 입력해주세요.");
44-
channelService.outputAllChannelInfo();
45-
int newChannelNumber = Integer.parseInt(sc.nextLine());
46-
currentChannel = channelService.getChannelByNumber(newChannelNumber);
47-
if (currentChannel == null) {
48-
System.out.println("유효하지 않은 채널 번호입니다.");
49-
}
47+
System.out.println(currentChannel.getChannelName() + " 채널을 삭제합니다.");
48+
channelService.deleteChannelName(currentChannel);
49+
System.out.println("정상적으로 채널이 삭제됐습니다. 변경하실 채널 번호를 입력해주세요.");
50+
channelService.outputAllChannelInfo();
51+
int newChannelNumber = Integer.parseInt(sc.nextLine());
52+
currentChannel = channelService.getChannelByNumber(newChannelNumber);
53+
if (currentChannel == null) {
54+
System.out.println("유효하지 않은 채널 번호입니다.");
5055
}
5156
}
5257
case 6 -> {
@@ -65,4 +70,4 @@ public void run() {
6570
}
6671
}
6772
}
68-
}
73+
}

0 commit comments

Comments
 (0)