适配器模式:

  适配器模式是用于当别人提供的对象或接口中的方法或者其它属性啥的和我们的重复了,或者看的不顺眼。名字太长了记不住,而将其包装到一个对象中,然后通过你感觉自己舒服的方式或者方法名字去间接的调用它。一个简单的例子就是三角插座,我没有三角口,用一个转接器呗。

对象适配器:

  将那个你看的不顺眼的对象的引用存在你的包装类对象内

package main

import "fmt"

type Target interface {
request()
}
type Adaptee struct { }
func(it *Adaptee)specificrequeset(){
fmt.Println("asdf")
} type Adapter struct {
adaptee *Adaptee
}
func(it *Adapter)setAdaptee(adaptee *Adaptee){
it.adaptee = adaptee
}
func(it *Adapter)request(){
it.adaptee.specificrequeset()
} func main(){
target := new(Adapter)
adaptee := new(Adaptee)
target.setAdaptee(adaptee)
target.request()
}

类适配器:

通过同时继承这两个类,而使自己拥有方法和替代方法,

在替代方法内调用原本方法

package main

type Target interface {
request()
}
type Adaptee struct { }
func(it *Adaptee)specificRequest(){ }
type Adapter struct {
Adaptee
}
func(it *Adapter)request(){
it.specificRequest()
}

最新文章

  1. 【CentOS】又是一篇Shell
  2. 拓扑排序 POJ2367Genealogical tree[topo-sort]
  3. [转]两种Sigma-Delta ADC SNR仿真方法
  4. 搭建Maven工程的时候,做单元测试,报ClassNotFoundException
  5. spring注解注入失败一个原因
  6. UVa 1644 (筛素数 + 二分) Prime Gap
  7. 股票中的数学:EMA的推导01
  8. [转]Swift 编程语言入门教程
  9. 关于《数据格式修改》的简单应用程序(C语言)
  10. SpringMVC通过实体类返回json格式的字符串,并在前端显示
  11. ES6 函数的扩展(1)
  12. OO第二单元总结——多线程电梯
  13. Django 数据迁移
  14. Movavi Video Editor 15 Plus Mac怎样更改视频的分辨率?
  15. [Asp.net core]使用ssh命令发布asp.net core项目
  16. 29.如何不用 transition 和 animation 也能做网页动画
  17. TabControl控件在左侧绘制tabPage页面
  18. bzoj3533【Sdoi2014】向量集
  19. caffe多个gpu数据合并到一起
  20. Oracle 11g行字段拼接WMSYS.WM_CONCAT问题Not A LOB

热门文章

  1. HDU 3879 && BZOJ 1497:Base Station && 最大获利 (最大权闭合图)
  2. HashMap源码分析(一):JDK源码分析系列
  3. jieba GitHUb 结巴分词
  4. python网络爬虫(11)近期电影票房或热度信息爬取
  5. JS格式化JSON后的日期
  6. Android使用WebView加载H5页面播放视频音频,退出后还在播放问题解决
  7. wcf服务编程(二)
  8. java 带静态域的导出类创建时都发生了什么?
  9. Spring Cloud Alibaba | Nacos集群部署
  10. 用Python和Pandas以及爬虫技术统计历史天气