设计模式 —— 委托模式

委托模式是软件设计模式中的一项基本技巧。在委托模式中,有两个对象参与处理同一个请求,接受请求的对象将请求委托给另一个对象来处理。委托模式是一项基本技巧,许多其他的模式,如状态模式、策略模式、访问者模式本质上是在更特殊的场合采用了委托模式。委托模式使得我们可以用聚合来替代继承,它还使我们可以模拟mixin。

 

案例:

MP3文件播放列表,访问者可以选择下载M3U或者PLS格式的播放列表。

添加歌曲,通过用户的命令下载播放列表。

如果说播放列表的格式越来越多了,那么if…else…更多了,那样很不美观和代码冗余。

我们可以委托者模式类解决这个问题。

Playlist是委托者,然后有m3u和pls等的被委托者。

playlist委托者存在一个私有变量存放被委托者,然后我们可以调用被委托者的方法,让用户下载其所要的格式。

调用如下,代码就是如此清晰简洁。