适配器模式用于转换一种接口适配另一种接口。
将笔记本HDMI接口视频输出转换成VGA视频输出。
adapter.go
package adapter // HDMI输出接口 type HDMI interface { UseHDMI() string } // VGA输出接口 type VGA interface { UseVGA() string } // 笔记本电脑 type Notebook struct { } // 笔记本HDMI视频输出 func (n *Notebook) UseHDMI() string { return "HDMI视频输出" } // 适配器:HDMI转VGA type AdapterHDMIToVGA struct { HDMI } func (h *AdapterHDMIToVGA) UseVGA() string { return "VGA视频输出" } // 适配器工厂函数 func NewAdapterHDMIToVGA(hdmi HDMI) VGA { return &AdapterHDMIToVGA{hdmi} }adapter_test.go
package adapter import "testing" func TestAdapter(t *testing.T) { var notebook HDMI = new(Notebook) t.Log("默认视频输出:", notebook.UseHDMI()) adapter := NewAdapterHDMIToVGA(notebook) t.Log("适配器过后:", adapter.UseVGA()) }