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

收费下载的wordpress网站阳泉seo

收费下载的wordpress网站,阳泉seo,商业网站设计制作公司,网站建设多少钱本文实践代码仓库:https://github.com/goSilver/my_practice 文章目录 一、定义二、作用三、实现四、总结 一、定义 建造者模式是一种创建复杂对象的设计模式。它将一个复杂对象的构建过程分解为多个简单的步骤,并且允许按照特定的顺序来构建对象。通过…

本文实践代码仓库:https://github.com/goSilver/my_practice

文章目录

    • 一、定义
    • 二、作用
    • 三、实现
    • 四、总结

一、定义

建造者模式是一种创建复杂对象的设计模式。它将一个复杂对象的构建过程分解为多个简单的步骤,并且允许按照特定的顺序来构建对象。通过使用建造者模式,我们可以将对象的构建算法与表示分离,从而可以使用相同的构建过程来创建不同的表示。通过使用建造者模式,我们可以更加灵活地构建复杂对象,同时也可以避免构造方法的参数过多和构造方法的复杂性。

二、作用

  1. 避免目标对象构造函数的参数列表过多,影响代码的可读性和可维护性;
  2. 解决参数之间存在依赖关系时的校验逻辑;
  3. 避免目标对象暴露set()方法,保证对象不可变;
  4. 避免目标对象存在中间无效状态。

三、实现

创建一个Builder类专门用于对象的创建,先创建建造者,并且通过 set() 方法设置建造者的变量值,然后在使用 build() 方法真正创建对象之前,做集中的校验,校验通过之后才会创建对象。

此处定义一个ResourcePoolConfig连接池资源类,并为它再定义一个Builder类,由Builder类提供set()方法,和包含复杂校验逻辑的build()方法。

public class ResourcePoolConfig {private String name;private int maxTotal;private int maxIdle;private int minIdle;private ResourcePoolConfig(Builder builder) {this.name = builder.name;this.maxTotal = builder.maxTotal;this.maxIdle = builder.maxIdle;this.minIdle = builder.minIdle;}//...省略getter方法.../*** 我们将Builder类设计成了ResourcePoolConfig的内部类。* 我们也可以将Builder类设计成独立的非内部类ResourcePoolConfigBuilder。*/public static class Builder {private static final int DEFAULT_MAX_TOTAL = 8;private static final int DEFAULT_MAX_IDLE = 8;private static final int DEFAULT_MIN_IDLE = 0;private String name;private int maxTotal = DEFAULT_MAX_TOTAL;private int maxIdle = DEFAULT_MAX_IDLE;private int minIdle = DEFAULT_MIN_IDLE;public ResourcePoolConfig build() {// 校验逻辑放到这里来做,包括必填项校验、依赖关系校验、约束条件校验等if (StrUtil.isBlank(name)) {throw new IllegalArgumentException("name should not be empty.");}if (maxIdle > maxTotal) {throw new IllegalArgumentException("maxIdle > maxTotal");}if (minIdle > maxTotal || minIdle > maxIdle) {throw new IllegalArgumentException("minIdle > maxTotal or minIdle > maxIdle");}return new ResourcePoolConfig(this);}public Builder setName(String name) {if (StrUtil.isBlank(name)) {throw new IllegalArgumentException("...");}this.name = name;return this;}public Builder setMaxTotal(int maxTotal) {if (maxTotal <= 0) {throw new IllegalArgumentException("...");}this.maxTotal = maxTotal;return this;}public Builder setMaxIdle(int maxIdle) {if (maxIdle < 0) {throw new IllegalArgumentException("...");}this.maxIdle = maxIdle;return this;}public Builder setMinIdle(int minIdle) {if (minIdle < 0) {throw new IllegalArgumentException("...");}this.minIdle = minIdle;return this;}}
}

四、总结

  1. 和工厂模式有何区别?

工厂模式是用来创建不同但是相关类型的对象(继承同一父类或者接口的一组子类),由给定的参数来决定创建哪种类型的对象。建造者模式是用来创建一种类型的复杂对象,通过设置不同的可选参数,“定制化”地创建不同的对象。

网上有一个经典的例子很好地解释了两者的区别。

顾客走进一家餐馆点餐,我们利用工厂模式,根据用户不同的选择,来制作不同的食物,比如披萨、汉堡、沙拉。对于披萨来说,用户又有各种配料可以定制,比如奶酪、西红柿、起司,我们通过建造者模式根据用户选择的不同配料来制作披萨。

  1. 弊端

使用建造者模式来构建对象,目标对象的成员变量需要在Builder类中重新定义一遍。

http://www.dt0577.cn/news/10224.html

相关文章:

  • 个人做网站模版是否有人买免费的个人网页
  • 哪里找需要网站建设的app推广文案
  • 网站建设找盛誉网络长沙推广公司
  • 品牌建设的定义免费下载优化大师
  • 兰州企业网站建设哪家好深圳百度seo公司
  • 如何用模板做网站苏州首页关键词优化
  • 徐州cms模板建站搜索引擎竞价推广的优势
  • 安顺做网站的公司百度账号24小时人工电话
  • 有哪些做室内设计好用的网站友情链接查询工具
  • dz可以做视频网站吗站长工具麻豆
  • 做简历做得好的网站什么时候友情链接
  • 哪个网站可以做视频武汉全网营销推广公司
  • 网站logo织梦怎么做图片外链生成工具在线
  • 怎样看网站有没有做301百度云盘搜索引擎入口
  • 网站注销百度seo关键词外包
  • 目前网站开发语言保定seo排名外包
  • zencart 网站换域名地推拉新app推广平台
  • 用网盘做网站公司官网优化方案
  • 怎样做销售水蜜桃网站百度收录官网
  • 联合网站设计百度网站检测
  • 怎么在网站上做游戏代练快速搭建网站的工具
  • 怎么做电力设计公司网站免费有效的推广网站
  • 谷歌seo收费seo代码优化有哪些方法
  • 国外做批发配件的 在哪个网站大地seo
  • 晋中做网站网站建设服务公司
  • 珠海做网站哪里公司好中国关键词官网
  • 免费网站建设优化产品怎么做推广和宣传
  • 网站快速被收录页面优化的方法有哪些
  • 网站在别人那里已经建好了_公司里要进行修改_怎么做广告公司取名字参考大全
  • 网站建设需求调研东营seo网站推广