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

网站推广方式怎么注销网站

网站推广方式,怎么注销网站,南阳住房和城乡建设管理局网站,牡丹江做网站目录 建造者模式#xff08;Builder Pattern#xff09; 建造者模式的核心角色 优缺点 使用场景 注意事项 代码实现 建造者模式#xff08;Builder Pattern#xff09; 建造者模式#xff08;Builder Pattern#xff09;是将一个复杂对象的构建与它的表示分离Builder Pattern   建造者模式的核心角色 优缺点 使用场景 注意事项 代码实现 建造者模式Builder Pattern   建造者模式Builder Pattern是将一个复杂对象的构建与它的表示分离使得同样的构建过程可以创建不同的表示。建造者模式是一步一步创建一个复杂的对象它允许用户只通过指定复杂对象的类型和内容就可以构建它们用户不需要知道内部的具体构建细节。 建造者模式的核心角色 1、抽象建造者Builder是为创建一个Product对象的各个部件指定的抽象接口。 2、具体建造者ConcreteBuilder实现Builder接口构造和装配各个部件。 3、指挥者Director是构建一个实用Builder接口的对象。一方面它隔离了客户与生产过程另一方面它负责控制产品的生成过程。 4、产品角色Product具体的产品 优缺点 1优点 分离构建过程和表示使得构建过程更加灵活可以构建不同的表示。 可以更好地控制构建过程隐藏具体构建细节。 代码复用性高可以在不同的构建过程中重复使用相同的建造者。 2缺点 如果产品的属性较少建造者模式可能会导致代码冗余。 建造者模式增加了系统的类和对象数量。 使用场景 建造者模式在创建复杂对象时非常有用特别是当对象的构建过程涉及多个步骤或参数时。它可以提供更好的灵活性和可维护性同时使得代码更加清晰可读。 需要生成的对象具有复杂的内部结构。 需要生成的对象内部属性本身相互依赖 注意事项 与工厂模式的区别是建造者模式更加关注与零件装配的顺序。 代码实现 package mainimport (errorsfmt )// Product内的参数 type ResourceParams struct {name stringmaxTotal int64maxIdle int64minIdle int64 }// Product接口 type ResourceProduct interface {show() }// 实际Product有show函数 type RedisResourceProduct struct {resourceParams ResourceParams }// show成员函数用于显示product的参数内容 func (p *RedisResourceProduct) show() {fmt.Printf(Product的数据为 %v , p.resourceParams) }// 资源类创建接口 type ResourceBuilder interface {setName(name string) ResourceBuildersetMaxTotal(maxTotal int64) ResourceBuildersetMaxIdle(maxIdle int64) ResourceBuildersetMinIdle(minIdle int64) ResourceBuildergetError() errorbuild() (p ResourceProduct) }// 实际建造者 type RedisResourceBuilder struct {resourceParams ResourceParamserr error }// 设置名称 func (r *RedisResourceBuilder) setName(name string) ResourceBuilder {if name {r.err errors.New(name为空)return r}r.resourceParams.name namefmt.Println(RedisResourceBuilder setName , name)return r }// 设置maxTotal值值不能小于0 func (r *RedisResourceBuilder) setMaxTotal(maxTotal int64) ResourceBuilder {if maxTotal 0 {r.err errors.New(maxTotal小于0)return r}r.resourceParams.maxTotal maxTotalfmt.Println(RedisResourceBuilder setMaxTotal , maxTotal)return r }// 设置maxIdle值值不能小于0 func (r *RedisResourceBuilder) setMaxIdle(maxIdle int64) ResourceBuilder {if maxIdle 0 {r.err errors.New(maxIdle小于0)return r}r.resourceParams.maxIdle maxIdlefmt.Println(RedisResourceBuilder setMaxIdle , maxIdle)return r }// 设置minIdle值值不能小于0 func (r *RedisResourceBuilder) setMinIdle(minIdle int64) ResourceBuilder {if minIdle 0 {r.err errors.New(minIdle小于0)return r}r.resourceParams.minIdle minIdlefmt.Println(RedisResourceBuilder setMinIdle , minIdle)return r }// 获取错误信息 func (r *RedisResourceBuilder) getError() error {return r.err }// 构建product: 1. 做参数校验 2. 根据参数生成product func (r *RedisResourceBuilder) build() (p ResourceProduct) {// 校验逻辑放到这里来做包括必填项校验、依赖关系校验、约束条件校验等if r.resourceParams.name {r.err errors.New(name为空)return}if !((r.resourceParams.maxIdle 0 r.resourceParams.minIdle 0 r.resourceParams.maxTotal 0) ||(r.resourceParams.maxIdle ! 0 r.resourceParams.minIdle ! 0 r.resourceParams.maxTotal ! 0)) {r.err errors.New(数据需要保持一致)return}if r.resourceParams.maxIdle r.resourceParams.maxTotal {r.err errors.New(maxIdle maxTotal)return}if r.resourceParams.minIdle r.resourceParams.maxTotal || r.resourceParams.minIdle r.resourceParams.maxIdle {r.err errors.New(minIdle maxTotal|maxIdle)return}fmt.Println(RedisResourceBuilder build)product : RedisResourceProduct{resourceParams: r.resourceParams,}return product }// 指挥者 type Director struct { }// 指挥者控制建造过程 func (d *Director) construct(builder ResourceBuilder) ResourceProduct {resourceProduct : builder.setName(redis).setMinIdle(10).setMaxIdle(10).setMaxTotal(20).build()err : builder.getError()if err ! nil {fmt.Println(构建失败原因为 err.Error())return nil}return resourceProduct }func main() {builder : RedisResourceBuilder{}director : Director{}product : director.construct(builder)if product nil {return}product.show() }
http://www.tj-hxxt.cn/news/133221.html

相关文章:

  • 盗版小说网站怎么做的如何联系网站站长
  • 域名网站建设流程粉色网站模板
  • 网站提交搜索引擎后出现问题软件开发的工作
  • 高品质网站建设公司邢台信息港首页
  • 网站开发能进无形资产吗站长之家关键词挖掘
  • 东莞建外贸企业网站杭州平面设计
  • 深圳做积分商城网站建设网页设计公司有哪些国内
  • 网站集群建设价格判断网站是否被k
  • 济宁 创意大厦 网站建设h5网站开发模板
  • 网站关键词是什么意思上海环球金融中心观光厅
  • 威海市临港区建设局网站环保网页设计代码
  • 网站的后端用什么软件做江门网站关键词推广
  • 网站开发是培训湖北省公共资源交易中心
  • 建设银行网上流览网站电子商务网站设计步骤
  • wordpress如何打包成app廊坊首位关键词优化电话
  • 网站开发 案例详解可信网站认证收费
  • 太原网站建设公司招聘北京各大网站推广平台哪家好
  • 飓风算法受影响的网站有哪些wordpress中文官网地址
  • 阐述网站建设利益江苏省建设招标网站首页
  • 开通公司网站怎么开通建设网站郑州
  • google和百度等相关网站的广告词网站开发公司需要什么资质
  • 西安网站优化排名推广项目开发平台有哪些
  • 做流量网站指定词整站优化
  • 小语种外贸网站建设wordpress数据库改密码
  • 营销型网站建设公司哪家好网站建设指的是什么
  • 网站中宣传彩页怎么做的百度账户托管公司
  • 辽宁住房和城乡建设部网站网站外链怎么购买
  • 网站设计专业有前途吗什么是响应式网页设计
  • 免费企业网站建设哪个东莞网站建设seo优化
  • 优秀简洁网站设计动漫制作专业专升本对应的专业