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

南山做网站的公司计算机网络毕业设计

南山做网站的公司,计算机网络毕业设计,阿里云虚拟主机可以做几个网站,wordpress主题制作解析option设计模式 一、背景二、应用demo三、Gin中的应用 一、背景 有时候一个函数会有很多参数#xff0c;为了方便函数的使用#xff0c;我们会给希望给一些参数设定默认值#xff0c;调用时只需要传与默认值不同的参数即可。因此选项设计模式顾名思义#xff0c;就是在… 解析option设计模式 一、背景二、应用demo三、Gin中的应用 一、背景 有时候一个函数会有很多参数为了方便函数的使用我们会给希望给一些参数设定默认值调用时只需要传与默认值不同的参数即可。因此选项设计模式顾名思义就是在构造一个复杂的对象时能以可选参数选项的形式传入构造对象的函数中为结构体字段赋值。先直接说下它的应用 需要构造对象比较复杂有较多的参数需要赋值有默认的参数项然后其余部分的参数需要通过插拔的形式进行配置以后可能还会有新的参数不断加进来 二、应用demo 现在以一个具体的应用场景来解析下具体怎么构造一个options的设计模式假如现在业务场景会构造一个配置对象但是这个配置是有很多默认的配置只有少部分需要更改。因此可以利用以下的options模式实现对应的业务场景。 type Config struct {param1 stringparam2 stringoption1 stringoption2 string }// 声明一个函数类型的变量用于传参 type Option func(config *Config)func InitConfig(opts ...Option) *Config {config : Config{param1: default1,param2: default2,}for _, opt : range opts {opt(config)}return config }func WithStringOption1(str string) Option {return func(config *Config) {config.option1 str} }func WithStringOption2(str string) Option {return func(config *Config) {config.option2 str} }func main() {config1 : InitConfig(WithStringOption1(option1),WithStringOption2(option2),)config2 : InitConfig(WithStringOption1(option1),)fmt.Println(*config1)fmt.Println(*config2) }代码中param1和param2则是默认配置的参数option1和option2则是需要进行配置的参数。而最关键的则是通过函数式的变量将不同的赋值操作统一最终通过闭包赋值给对应构造对象。 type Option func(config *Config)三、Gin中的应用 gin中最典型的应用options模式的就是在构建engine的时候。 New(opts …OptionFunc) func New(opts ...OptionFunc) *Engine {debugPrintWARNINGNew()engine : Engine{RouterGroup: RouterGroup{Handlers: nil,basePath: /,root: true,},FuncMap: template.FuncMap{},RedirectTrailingSlash: true,RedirectFixedPath: false,HandleMethodNotAllowed: false,ForwardedByClientIP: true,RemoteIPHeaders: []string{X-Forwarded-For, X-Real-IP},TrustedPlatform: defaultPlatform,UseRawPath: false,RemoveExtraSlash: false,UnescapePathValues: true,MaxMultipartMemory: defaultMultipartMemory,trees: make(methodTrees, 0, 9),delims: render.Delims{Left: {{, Right: }}},secureJSONPrefix: while(1);,trustedProxies: []string{0.0.0.0/0, ::/0},trustedCIDRs: defaultTrustedCIDRs,}engine.RouterGroup.engine engineengine.pool.New func() any {return engine.allocateContext(engine.maxParams)}return engine.With(opts...) }从代码中可以看出函数中构造了一大堆默认参数然后在return时返回了engine.With(opts…)继续深入 type OptionFunc func(*Engine)func (engine *Engine) With(opts ...OptionFunc) *Engine {for _, opt : range opts {opt(engine)}return engine }可以发现这里是通过With函数传入函数式参数实现了options模式。在 golang 的很多开源项目里面也用到了选项模式比如 grpc 中的 rpc 方法就是采用选项模式设计的除了必填的 rpc 参数外还可以一些选项参数grpc_retry 就是通过这个机制实现的可以实现自动重试功能。
http://www.pierceye.com/news/138360/

相关文章:

  • 宁波网站推广找哪家重庆市建设工程信息网官网怎么查看
  • 大创意网站wordpress影视主题
  • 简约 网站模板电商网站推广方法
  • 做网站一月工资深圳建站推广公司
  • 免费建设商城网站网络商城应该如何推广
  • 做美食直播哪个网站最好html5期末大作业个人网站制作
  • 做网站和seo流程网址升级中
  • 自己做众筹网站怎样做才能发布你的网站
  • 陕西省建设厅网站查询恶意点击软件有哪些
  • 天河高端网站建设云南建设工程招投标信息网
  • iis 网站制作凡科互动小游戏怎么刷高分
  • 接网站开发项目如何做网站背景
  • 重庆奉节网站建设定制vx怎么弄
  • 烟台建网站公司哪家好辽源做网站的公司
  • 建设企业网站地址网站空间 虚拟主机
  • h5网站模板免费下载网页源码提取工具
  • 网站设计和网页设计建网站必备软件
  • 中国建设银行上海市分行网站音乐网站开发可行性分析
  • 如何用天地图做网站做面包有哪些网站知乎
  • 买了域名之后怎么建设网站做网站一年赚一千万
  • 跟网站开发公司签合同主要要点个人网站logo需要备案吗
  • 免费询盘网站自我介绍ppt模板
  • 中国会议营销网站怎么做找优惠券的网站
  • 做网站的那些事wordpress改写
  • 仿造整个网站呼市网站建设公司
  • 网站被黑客入侵怎么办企业文化墙设计网站推荐
  • 建设网站的群婚礼婚庆网站建设需求分析
  • 全椒县城乡建设局网站网站怎么做营销策划
  • 响应式网站制作流程河北企业建网站
  • 常州新北区有做淘宝网站策划的吗什么建设网站