网站建设费应该怎样入账,网站关键词添加多少个,实业公司网站建设,广州市数商云前言 个人感觉Adapter模式核心就在于接口之间的转换。将已有的一些接口转换成其他接口形式。并且一般用于对象上#xff0c;而不是系统上 问题
就用一个简单的问题#xff0c;懂数据结构的同学可能知道双端队列。那么就用双端队列实现一个栈#xff08;stack#xff09;或…前言 个人感觉Adapter模式核心就在于接口之间的转换。将已有的一些接口转换成其他接口形式。并且一般用于对象上而不是系统上 问题
就用一个简单的问题懂数据结构的同学可能知道双端队列。那么就用双端队列实现一个栈stack或者是普通队列queue
解决方案
type Stack struct {element *list.List
}func NewStack() *Stack {return Stack{element: list.New(),}
}func (s *Stack) Push(value interface{}) {s.element.PushBack(value)
}func (s *Stack) Pop() interface{} {lastElement : s.element.Back()if lastElement ! nil {s.element.Remove(lastElement)return lastElement.Value}return nil
}上面的代码就是一个栈的简单实现。仅仅是把list的功能直接拿来修改了一下。
总结
适配器遵循开闭原则。 只要客户端代码通过客户端接口与适配器进行交互 你就能在不修改现有客户端代码的情况下在程序中添加新类型的适配器。
但同样代码整体复杂度增加 因为你需要新增一系列接口和类。 有时直接更改服务类使其与其他代码兼容会更简单。 适配器模式的核心设计思想是对对象级别的进行修改并且利用已有功能进行修改范围较小。