面向对象的设计 - 暂停功能

sho*_*301 1 java oop

我试图突破我的OOD思维.这是我的问题.

假设你想设计一个音乐mp3播放器.我收到了一个包含播放列表的课程.

class Player {
    Map<String, List<Song>> playlists;    // <Name, PlayList>
    public void play (Song song) {
        // decode song
        // play song
    }
    public void play (String playlistName) {
        // play a playlist
        for (Song song : playlists.get(playlistName)) {
            play (song);
        }
    }
    public void stop () {
        // stop playing
    }
    public void pause () {
        // pause, resume playing the last song when hit play again
    }
}
Run Code Online (Sandbox Code Playgroud)

我们假设"歌曲"已经包含了歌曲的所有元数据.已经描述了方法的所有功能.当我试图实现"暂停"方法时,我被困住了.你会怎么做才能意识到这一点?

谢谢!

Dar*_*der 6

看看状态模式.您将存储播放器的状态.当你点击暂停和播放时,你将知道播放器的状态.