当前位置: 首页 > wzjs >正文

旅游网站项目计划书百度推广怎么赚钱

旅游网站项目计划书,百度推广怎么赚钱,小创业公司网站怎么做,网站域名备案号查询在先前一篇文章中,笔者给大家提到了go语言后端编程可以用wire依赖注入模块去简化单例服务的初始化,同时也可以解决服务单例之间复杂依赖的问题。但实事求是来讲,用wire也是有一些学习成本的,wire在帮助解决复杂依赖的问题同时&…

在先前一篇文章中,笔者给大家提到了go语言后端编程可以用wire依赖注入模块去简化单例服务的初始化,同时也可以解决服务单例之间复杂依赖的问题。但实事求是来讲,用wire也是有一些学习成本的,wire在帮助解决复杂依赖的问题同时,也会限定你去用一些特定的编程方式来满足wire的需要,尤其需要你interface给用的更加灵活。

因此今天这篇文章,笔者结合自己的经验,就和大家浅分享下,wire和interface配合的一些经验,让大家以后用wire的时候避免一些坑。

对于wire的build指令而言,build会检查你依赖对象是属于哪种类型,不能出现重复provide某种类型的情况。也就是说,比如你的某个Service需要一个string的member,那这个string就不好单独provide出来,因为其他Service也大概率存在。所以这种情况下,我们需要通过一个string-provider的interface或者struct去对这个string做一个封装,阐明这个参数的独有业务涵义,这样就不会出现依赖重复的情况。

type ThirdPartyClient struct {Client *HttpClientSecret string // 初始情况下,需要提供一个secret参数
}// 一种方式是通过静态config拿,然后wire.Struct给到ThirdPartyClient
type ThirdPartyConfig struct {Secret string
}type ThirdPartyClient struct {Client *HttpClientConfig *ThirdPartyConfig
}func NewThirdPartyClient(httpClient *HttpClient, config *ThirdPartyConfig) *ThirdPartyClient {return &ThirdPartyClient{Client: httpClient,Config: config,}
}// 另一种方式是抽象一个SecretProvider的interface,可以处理动态获取Secret的情况
type ISecretProvider interface {GetSecret() string
}type ThirdPartyClient struct {Client *HttpClientSecretProvider ISecretProvider
}func NewThirdPartyClient(httpClient *HttpClient, secretProvider ISecretProvider) *ThirdPartyClient {return &ThirdPartyClient{Client: httpClient,SecretProvider: secretProvider,}
}

那这里就衍生出新的问题,如果我有很多Secret,一个SecretProvider不够,那怎么办?这个也好办,因为本质上来讲,对于每一个参与wire的实例,我们都需要阐明其的独有业务涵义。也就是说,你得在ISecretProvider基础上,定义IAAASecretProvider、IBBBSecretProvider以及ICCCSecretProvider这种。或者换个例子,我们wire一些缓存模块给业务service,缓存模块就需要这么设计。

type ICache interface {Get(key string) (string, error)Set(key string, value string, expiration time.Duration) error
}type ILocalCache interface {ICache
}type IRemoteCache interface {ICache
}func NewGoCache() ILocalCache {// TODO
}func NewRedisCache() IRemoteCache {// TODO
}

通过这样写,不仅可以区分LocalCache和RemoteCache,满足wire的要求,同时对于其它开发者,也能够清楚知道当前是使用Local和Remote的Cache来做业务逻辑,这样就不会出现误用。

http://www.dtcms.com/wzjs/116173.html

相关文章:

  • wordpress 小程序 教程seo独立站
  • wordpress地址(url)站点地址(url)百度搜索引擎官网
  • 做报名网站管理方面的培训课程
  • 香河县建设委员会网站专业培训seo的机构
  • 教做糕点的视频网站广告竞价
  • 做网站编辑要会什么百度金融
  • php制作新闻网站seo专业培训技术
  • 青海省网站建设公司外贸网站免费推广
  • 下模板做网站百度云资源链接分享群组
  • 哈尔滨市建设安全网站百度双十一活动
  • oppo软件商店苹果版下载专业百度seo排名优化
  • 推广平台哪儿有怎么做狼雨的seo教程
  • 苏州建网站皆去苏州聚尚网络拉新任务接单放单平台
  • 平潭城乡住房建设厅网站网站流量数据分析
  • 本地高端网站建设信息大全seo网站优化是什么
  • 网站建设概况小广告
  • 大同建设工程信息网seo搜索优化推广
  • 淘宝网站建设与规划google seo 优化
  • 日本巨乳做视频网站长沙网站制作
  • 卖花网站模板百度添加到桌面
  • 传奇游戏代理0加盟费网页优化方案
  • 上海做网站要多少钱app制作公司
  • 网站怎样做域名绑定sem是什么意思的缩写
  • 推荐一些可以做笔试题的网站网站查询是否安全
  • 网站备案能不能出现世界网站首页模板
  • tp框架做网站的优点郑州百度推广公司
  • 企业网站后台管理模板建网站免费
  • 营销网站定制的优势最新新闻热点事件2024
  • wordpress媒体图片压缩比seo文章生成器
  • 温州专业微网站制作价格营销策划案的模板