首页 > 其他 > 详细

适配器模式

时间:2020-12-19 12:13:09      阅读:25      评论:0      收藏:0      [点我收藏+]
 1 package adapter
 2 
 3 //适配器模式
 4 //应用最多的是在接口升级,而又需要保证老接口的兼容性,为了让老接口能够继续工作,所以提供了一个中间层,让老接口对外的接口不变
 5 //但是实际上调用了新的代码
 6 
 7 //被适配接口的工厂函数
 8 func NewAdaptee() Adaptee {
 9     return &adapteeImpl{}
10 }
11 
12 //被适配的目标接口
13 type Adaptee interface {
14     SpecificRequest() string
15 }
16 
17 type adapteeImpl struct {
18 }
19 
20 func (*adapteeImpl) SpecificRequest() string {
21     return "adaptee method被适配器方法"
22 }
23 
24 func NewAdapter(adaptee Adaptee) Target {
25     return &adapter{
26         Adaptee: adaptee,
27     }
28 }
29 
30 //Target是适配的目标接口
31 type Target interface {
32     Request() string
33 }
34 
35 type adapter struct {
36     Adaptee
37 }
38 
39 func (a *adapter) Request() string {
40     return a.SpecificRequest()
41 }

package adapter

import "testing"

var expect = "adaptee method被适配器方法"

func TestAdapter(t *testing.T) {
    adaptee := NewAdaptee()
    target := NewAdapter(adaptee)
    res := target.Request()
    if res != expect {
        t.Fatalf("expect %s,return %s", expect, res)
    }
}

 

适配器模式

原文:https://www.cnblogs.com/go1234-cn/p/14158299.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!