음악 플레이어 애플리케이션을 디자인하려면 원활하고 효율적인 사용자 경험을 보장하기 위해 신중한 계획과 구성 요소 구성이 필요합니다.
재생 기능:
재생목록 관리:
검색:
미디어 제어:
저장:
음악 플레이어 애플리케이션은 다음 구성 요소로 분류될 수 있습니다.
각 구성요소의 로우레벨 디자인과 구현을 살펴보겠습니다.
Song 클래스는 메타데이터가 포함된 단일 음악 트랙을 나타냅니다.
public class Song { private String id; private String title; private String artist; private String album; private double duration; // in seconds public Song(String id, String title, String artist, String album, double duration) { this.id = id; this.title = title; this.artist = artist; this.album = album; this.duration = duration; } // Getters and setters public String getId() { return id; } public String getTitle() { return title; } public String getArtist() { return artist; } public String getAlbum() { return album; } public double getDuration() { return duration; } }
Playlist 클래스는 노래 모음을 관리합니다. 노래를 추가, 제거, 가져올 수 있습니다.
import java.util.ArrayList; import java.util.List; public class Playlist { private String name; private List<Song> songs; public Playlist(String name) { this.name = name; this.songs = new ArrayList<>(); } public void addSong(Song song) { songs.add(song); } public void removeSong(Song song) { songs.remove(song); } public List<Song> getSongs() { return songs; } public String getName() { return name; } }
MusicPlayer 클래스는 재생, 일시 정지, 중지, 볼륨 제어 등의 재생 기능을 처리합니다.
public class MusicPlayer { private Song currentSong; private boolean isPlaying; public void play(Song song) { this.currentSong = song; this.isPlaying = true; System.out.println("Playing: " + song.getTitle() + " by " + song.getArtist()); } public void pause() { if (isPlaying) { isPlaying = false; System.out.println("Paused: " + currentSong.getTitle()); } else { System.out.println("No song is currently playing."); } } public void stop() { if (currentSong != null) { System.out.println("Stopped: " + currentSong.getTitle()); currentSong = null; isPlaying = false; } else { System.out.println("No song is currently playing."); } } public void resume() { if (currentSong != null && !isPlaying) { isPlaying = true; System.out.println("Resumed: " + currentSong.getTitle()); } else { System.out.println("No song to resume."); } } }
SearchService 클래스를 사용하면 제목, 아티스트 또는 앨범별로 노래를 검색할 수 있습니다.
import java.util.ArrayList; import java.util.List; public class SearchService { private List<Song> songs; public SearchService(List<Song> songs) { this.songs = songs; } public List<Song> searchByTitle(String title) { List<Song> results = new ArrayList<>(); for (Song song : songs) { if (song.getTitle().equalsIgnoreCase(title)) { results.add(song); } } return results; } public List<Song> searchByArtist(String artist) { List<Song> results = new ArrayList<>(); for (Song song : songs) { if (song.getArtist().equalsIgnoreCase(artist)) { results.add(song); } } return results; } public List<Song> searchByAlbum(String album) { List<Song> results = new ArrayList<>(); for (Song song : songs) { if (song.getAlbum().equalsIgnoreCase(album)) { results.add(song); } } return results; } }
StorageService 클래스는 로컬 저장소에서 노래 읽기를 시뮬레이션합니다.
public class Song { private String id; private String title; private String artist; private String album; private double duration; // in seconds public Song(String id, String title, String artist, String album, double duration) { this.id = id; this.title = title; this.artist = artist; this.album = album; this.duration = duration; } // Getters and setters public String getId() { return id; } public String getTitle() { return title; } public String getArtist() { return artist; } public String getAlbum() { return album; } public double getDuration() { return duration; } }
import java.util.ArrayList; import java.util.List; public class Playlist { private String name; private List<Song> songs; public Playlist(String name) { this.name = name; this.songs = new ArrayList<>(); } public void addSong(Song song) { songs.add(song); } public void removeSong(Song song) { songs.remove(song); } public List<Song> getSongs() { return songs; } public String getName() { return name; } }
위 내용은 음악 플레이어 애플리케이션의 저수준 디자인의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!