Recent Posts
Link
250x250
오늘보다 더 나은 내일의 나에게_
Java MVC Pattern 본문
728x90
MVC Pattern
M : Model
=> 컨트롤러에서 수행할 내용을 받아 자바코드, SQL / 기능수행하기위해 사용될 데이터들을 정의하는 공간
VO(Value Object) - (필드, 생성자, getter)
DTO(Data Transfer Object)
DAO(Data Access Object)-(DB연동 메소드 필드)
V : View
=> 사용자에게 보여질 화면(UI)
C : Controller
=>View에서 사용자가 요청한 사항에대해 기능을 제공 / 사용자가 요청한 데이터(Model)불러와줌 / 로직
Model <----> Controller <----> View
MVC 패턴 필요성
Low Coupling(결합도) : 객체 혹은 시스템 간의 결합도가 낮다
High Cohesion(응집도) : 하나의 메소드는 하나의 역할만을 동작
=> 즉, 시스템 유지 보수의 편리성 제공
예제 뮤직플레이어 만들기
- 1을 입력받으면 노래를 재생
- 2를 입력받으면 노래를 정지
- 3을 입력받으면 이전노래를 재생
- 4를 입력받으면 다음노래를 재생
- 5를 입력받으면 프로그램이 종료
- 1~5이외 다른 숫자나 문자입력시 "잘못입력하셨습니다." 출력
Model
더보기package MusicPlayer; public class Music { // mp3 데이터 // 노래제목 -> title // 가수이름 -> singer // 재생시간 -> playTime // getter // 생성자 메서드 // 접근제한하 -> private private String title; private String singer; private int playTime; //경로에대한 데이터 넣기 private String path; public Music(String title, String singer, int playTime, String path) { this.title = title; this.singer = singer; this.playTime = playTime; this.path = path; } public String getPath() { return path; } public String getTitle() { return title; } public String getSinger() { return singer; } public int getPlayTime() { return playTime; } }
View
더보기package MusicPlayer; import java.util.ArrayList; import java.util.Scanner; import javazoom.jl.player.MP3Player; public class Main { public static void main(String[] args) { // 뮤직플레이어 만들기! // 입력받는 도구 불러오기 Scanner sc = new Scanner(System.in); // Scanner, Random -> 다른클래스에서 기능가져와서 사용 // MP3Player 사용하기 위해 가장먼저해야할일! MP3Player mp3 = new MP3Player(); //Controller 안에 기능을 사용하기위해 클래스 가져오기 Controller con = new Controller(); // Music 클래스안에 있는 변수들에게 데이터를 보내줘야함 //노래 5가지 정보 저장하기 Music music1 = new Music("깡", "Rain", 59, "C:\\Users\\smhrd\\Desktop\\music\\깡.mp3"); Music music2 = new Music("Maria", "화사", 59, "C:\\Users\\smhrd\\Desktop\\music\\Maria.mp3"); Music music3 = new Music("Mago", "이름모름", 59, "C:\\Users\\smhrd\\Desktop\\music\\MAGO.mp3"); Music music4 = new Music("How you like that", "블랙핑크", 59, "C:\\Users\\smhrd\\Desktop\\music\\How you like that.mp3"); Music music5 = new Music("살짝설렜어", "오마이걸", 59, "C:\\Users\\smhrd\\Desktop\\music\\살짝설렜어.mp3"); // System.out.println(music1.getTitle()); // System.out.println(music1.getSinger()); // System.out.println(music1.getPlayTime()); // 노래에대한 정보를 정리하기위해서 ArrayList ArrayList<Music> list = new ArrayList<Music>(); list.add(music1); list.add(music2); list.add(music3); list.add(music4); list.add(music5); // "깡" music1.getTitle() ----> list.get(0).getTitle() //System.out.println(list.get(0).getTitle()); int index = 0; while(true) { // [1]재생 [2]정지 [3]이전곡 [4]다음곡 [5]종료 >>> System.out.print("[1]재생 [2]정지 [3]이전곡 [4]다음곡 [5]종료 >>> "); // 사용자에 입력받은 숫자 변수 int menu = sc.nextInt(); // 1,2,3,4를 입력받았을때는 반복 // 5입력받았을때 반복 멈춤 if(menu == 1) { //재생 System.out.println(list.get(index).getTitle()); System.out.println(list.get(index).getSinger()); System.out.println(list.get(index).getPlayTime()); //노래를 재생시키는 기능을 표현한 곳 // mp3.play(list.get(index).getPath()); //Controller에있는 play메서드(기능)을 불러오는 것 con.play(list, index); }else if(menu == 2) { //정지 //노래를 멈추는 기능 //노래가 재생중일때만 멈추는 기능 사용가능 con.stop(); }else if(menu == 3) { //이전곡 //1. 인덱스 index--; //2. 이미 노래가 재생중이라면 노래를 멈춰야함 con.stop(); //3. 인덱스의 값이 0보다 작으면 index 끝값(list.size()-1) if(index < 0) { index = list.size()-1; } System.out.println(list.get(index).getTitle()); System.out.println(list.get(index).getSinger()); System.out.println(list.get(index).getPlayTime()); //4. 노래를 재생시키자 con.play(list, index); }else if(menu == 4) { //다음곡 //인덱스 + 1 index++; //증가된 인덱스 값안에 들어있는 노래를 재생시키자. //노래 이미 재생중이라면 노래를 멈추고 다음노래 재생 con.stop(); //조건2. list 크기를 넘어서면 처음노래로 다시 돌아와서 재생 if(index >= list.size() - 1) { index = 0; } System.out.println(list.get(index).getTitle()); System.out.println(list.get(index).getSinger()); System.out.println(list.get(index).getPlayTime()); con.play(list, index); }else if(menu == 5) { //종료 con.stop(); System.out.println("프로그램이 종료되었습니다."); break; }else { System.out.println("잘못입력하셨습니다."); } } } }
Controller
더보기package MusicPlayer; import java.util.ArrayList; import javazoom.jl.player.MP3Player; public class Controller { static MP3Player mp3 = new MP3Player(); public static void main(String[] args) { } public static void play(ArrayList<Music> list, int index) { //4. 노래를 재생 mp3.play(list.get(index).getPath()); } public static void stop() { if(mp3.isPlaying()) { mp3.stop(); } } }
728x90
'JAVA' 카테고리의 다른 글
Java 추상클래스와 인터페이스 (0) | 2022.01.13 |
---|---|
Java 상속 (0) | 2022.01.13 |
Java 객체 배열 (0) | 2022.01.13 |
Java 메소드(Method) (0) | 2022.01.13 |
Java OOP, 생성자 (0) | 2022.01.13 |
Comments