IT/JAVA

유효성 검사, 예외처리 전 코드

_KH_ 2025. 2. 3. 23:57

MVC 패턴 프로젝트 - VIEW 파트 

유효성 검사, 예외처리 추가하기 전 코드

 

1. ClientView

package view;

import java.util.ArrayList;

import model.MemberDTO;
import model.BookDTO;

public class ClientView extends View {


	public void printMenuLogin() { // 회원 메뉴 출력
		System.out.println("1. 도서관 책 목록 출력");
		System.out.println("2. 인기 대출 도서 출력");
		System.out.println("3. 책 검색");
		System.out.println("4. 장바구니 담기");
		System.out.println("5. 장바구니 비우기");
		System.out.println("6. 책 대여");
		System.out.println("7. 대여중인 책 목록 출력");
		System.out.println("8. 책 반납하기");
		System.out.println("0. 프로그램 종료");

	}

	public int inputNum() { // 번호 입력
		System.out.print("번호를 입력해주세요 >>");
		return sc.nextInt();
	}


	/*	public void printDatas(ArrayList<BookDTO> datas) { // 목록 출력
		if(datas == null || datas.size() <= 0 ) {
			System.out.println("책이 없습니다!");
			return;
		}
		for(BookDTO book : datas) {
			System.out.println(book);
		}
	} */ // 상위뷰로 이동


	public void printPopularList(ArrayList<BookDTO> datas) { // 인기 대출 도서 출력
		if(datas == null ||  datas.isEmpty()) {
			System.out.println("아직 데이터가 존재하지 않습니다.");
			return;
		}
		System.out.println("======= 인기 대출 도서 =======");
		int rank = 1; // 순위 출력 위한 변수
		for(BookDTO book : datas) {
			System.out.println(rank + "위 : " + book);
			rank++; // 순위 증가
		}
	}

	public String inputBookName() { // 책 이름 검색 안내
		System.out.print("찾고 싶은 책 이름을 입력해주세요! >>");
		return sc.next();
	}

	public void printSearchBook(String inputBookName, ArrayList<BookDTO> datas) { // 책 검색 출력
		boolean flag = false;
		for(BookDTO book : datas) {
			if(book.getName().contains(inputBookName)) {
				System.out.println(book);
				flag = true;
			}
		}
		if(!flag) {
			System.out.println("검색 결과가 존재하지 않습니다.");
		}
	} // 수정

	public void addToCart(int resultNum) { // 장바구니 담기 결과 안내
		if(resultNum == 0) {
			System.out.println("장바구니에 책을 성공적으로 담았습니다!");
		} else if(resultNum == 1) {
			System.out.println("도서관에 존재하지 않는 책입니다..");
		} else if(resultNum == 2) {
			System.out.println("다른 사람이 대여중인 책입니다.");
		} else if(resultNum == 3) {
			System.out.println("현재 도서관에 대여가능한 책이 없습니다.");
		}

	}

	public void borrowFromCart(int resultNum) { // 장바구니 책 대여 
		if(resultNum == 0) {
			System.out.println("책을 성공적으로 대여하였습니다.");
		} else if(resultNum == 1) {
			System.out.println("책 대여에 실패하였습니다.");
		} // 수정
	}

	public void printReturnBook(int resultNum, MemberDTO datas) { // 책 반납 결과
		ArrayList<BookDTO> borrowedBooks = datas.getBookList(); 

		if (resultNum == 0) {
			for (BookDTO book : borrowedBooks) { 
				System.out.println(book.getName() + " 을(를) 반납했습니다."); // 전체 책 반납이니까 for문
			} else if(resultNum == 1) {
				System.out.println("반납할 책이 없습니다.");
			}
		} 
	}// 수정★

	public void printCartEmpty() { // 장바구니 비우기 성공 안내
		System.out.println("장바구니 목록이 삭제되었습니다.");
	}

	public void printDatas(MemberDTO datas) { // 대여한 책 목록 출력
		ArrayList<BookDTO> borrowedBooks = datas.getBookList(); 

		if(borrowedBooks == null || borrowedBooks.isEmpty()) {
			System.out.println("대여한 책이 없습니다!");
			return;
		}
		System.out.println(datas.getId() + "님이 대여한 책 목록");
		super.printDatas(borrowedBooks); // 오버로딩
	}

	public String checkBorrow() { // 대여 확인 문구
		System.out.print("진짜 대여하시겠습니까? (YES, NO) >>"); 
		return sc.next();
	}

	public String checkReturn() { // 반납 확인 문구
		System.out.print("진짜 반납하시겠습니까? (YES, NO) >>"); 
		return sc.next();
	}

	public void printCheckMode() { // 관리자가 회원 모드에서 로그인 시도
		System.out.println("회원 모드입니다. 모드를 다시 확인해주세요!");
	}
}

 

2. View(상위 뷰)

package view;

import java.util.Scanner;
import model.MemberDTO;
import model.BookDTO;

public abstract class View {
	Scanner sc;

	public View() {
		sc=new Scanner(System.in);
	}

	public final void logOut() {
		System.out.println("로그아웃 되었습니다.");
	}

	public final void printEmptyBook() {
		System.out.println("책이 없습니다!");
	}

	public final void printEmptyCart() {
		System.out.println("장바구니가 비어있습니다!");
	}

	public final void requireLogin() {
		System.out.println("로그인이 필요한 기능입니다.");
	}

	public void printDatas(ArrayList<BookDTO> datas) { // 목록 출력
		if(datas == null || datas.size() <= 0 ) {
			System.out.println("책이 없습니다!");
			return;
		}
		for(BookDTO book : datas) {
			System.out.println(book);
		}
	}
}