概念
通过分配或委托至其他对象,委托模式能够去除核心对象中的判决和复杂的功能性。
实现场景
添加音乐、并且根据音乐类型获取不同的音乐列表(返回字段形式均不一样)
使用委托模式 VS 基本实现 (UML)
使用基本实现方式调用时,需要if-else的判断,并且音乐类型不断增加,会导致PlayList类无限扩大。但是使用委托模式,在初始化类时,已经声明音乐类型$type,例如M3U,根据类型找到M3UPlaySong类,其余的查询列表均在委托类中进行实现。
代码实现
1 | <?php |
通过分配或委托至其他对象,委托模式能够去除核心对象中的判决和复杂的功能性。
添加音乐、并且根据音乐类型获取不同的音乐列表(返回字段形式均不一样)
使用基本实现方式调用时,需要if-else的判断,并且音乐类型不断增加,会导致PlayList类无限扩大。但是使用委托模式,在初始化类时,已经声明音乐类型$type,例如M3U,根据类型找到M3UPlaySong类,其余的查询列表均在委托类中进行实现。
1 | <?php |