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

WordPress pwa北京搜索引擎优化管理专员

WordPress pwa,北京搜索引擎优化管理专员,做网站的上海市哪家技术好,电商网站开发意义在先前一篇文章中,笔者给大家提到了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/234231.html

相关文章:

  • 嘉兴企业网站开发哪个平台做推广效果好
  • 营销型网站测评方法页面优化
  • 国外专门做杂志的共享网站网站建成后应该如何推广
  • vps怎么做网站网页设计图片
  • 电子商务网站制作推广平台有哪些渠道
  • 家具网站素材seo教程技术整站优化
  • python写网站千锋教育的it培训怎么样
  • 上海建筑工程有限公司企业关键词排名优化网址
  • 哈尔滨专业的建站报价十大跨界营销案例
  • 做企业网站用服务器软文广告
  • 泉州网站建设价格西安百度竞价托管
  • 网页设计尺寸规范psseo的基本工作内容
  • 中国互联网协会网络与信息安全工作委员会网站seo快速排名
  • 做网站图片格式天津外贸seo推广
  • 郑州做网站优化地址深圳搜索引擎优化收费
  • 翻译网站怎么做上街网络推广
  • 0基础做网站用什么语言大连网站建设
  • 自考网站建设与管理重庆百度seo排名
  • 珠海市网站站长网站统计
  • 超市网站建设方案安徽网站seo公司
  • 中国建设银网站公司的公关
  • 封面设计网站百度快速优化推广
  • 用ssh做的简单网站网站建设公司哪家好?该如何选择
  • 武汉建网公司网站建设热搜榜上2023年热搜
  • 建网站赚钱吗长沙疫情最新消息
  • 南京专业网站设计哪个品牌新闻 最新消息
  • 网站开发提问最近一周国内热点新闻
  • 新乡网站开发公司网站设计
  • 企业管理培训课程定制网站seo视频狼雨seo教程
  • 高速公路建设论坛网站网页模板网站