适配器模式
适配器模式(Adapter Pattern) 就是作为两个不兼容接口之间的桥梁. 设计属于结构模式.
将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
优点 和 缺点
优点:
- 提高类的使用率
- 增加了透明度
- 将没有关系的类联合起来
缺点:
- 过多使用适配器会让代码变得复杂
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| type MusicPlayer interface { play(fileType string, fileName string) }
type OutPlayer struct{ }
func (*OutPlayer) playMp3(fileName string) { fmt.Println("play mp3: ", filename) }
func (*OutPlayer) playWma(fileName string) { fmt.Println("play wma :", fileName) }
type PlayerAdaptor struct{ outPlayer OutPlayer }
func (player *PlayerAdaptor) play(fileType string, fileName string) { switch fileType { case "mp3": player.outPlayer.playMp3(fileName) case "wma": player.outPlayer.playWma(fileName) default: fmt.Println("Can't use it") } }
|