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

微商招商网站源码网站系统分析的步骤有哪些

微商招商网站源码,网站系统分析的步骤有哪些,网页设计工资一般多少2017,网站架构建设方案文章目录 一. 使用场景二. 具体实现三. 小结1. 结合场景使用2. 与工厂模式的区别 建造者模式本身不难#xff0c;重点是掌握好它的适用场景。 一. 使用场景 如果一个类中有很多属性#xff0c;为了避免构造函数的参数列表过长#xff0c;影响代码的可读性和易用性#xf… 文章目录 一. 使用场景二. 具体实现三. 小结1. 结合场景使用2. 与工厂模式的区别 建造者模式本身不难重点是掌握好它的适用场景。 一. 使用场景 如果一个类中有很多属性为了避免构造函数的参数列表过长影响代码的可读性和易用性我们可以通过构造函数配合 set() 方法来解决。 但是如果存在下面情况中的任意一种我们就要考虑使用建造者模式了。 如果创建对象时必填的属性有很多那构造函数就会出现参数列表很长的问题。此时我们也无法通过set方法设置必填属性因为没有设置的必填属性无法判断。如果类的属性之间有一定的依赖关系或者约束条件我们继续使用构造函数配合 set() 方法的设计思路那这些依赖关系或约束条件的校验逻辑就无处安放了。如果我们希望创建不可变对象也就是说对象在创建好之后就不能再修改内部的属性值此时我们就不能在类中暴露 set() 方法。 接下来看建造者模式是如何解决这些问题的。 二. 具体实现 对于校验与属性之间存在关系 我们可以把校验逻辑放置到 Builder 类中先创建建造者并且通过 set() 方法设置建造者的变量值然后在使用 build() 方法真正创建对象之前做集中的校验校验通过之后才会创建对象。 对于不可变对象 把类的构造函数改为 private这样就只能通过建造者来创建对象。另外不提供提供任何 set() 方法这样创建出来的对象就是不可变对象了。 具体的代码如下所示 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 (StringUtils.isBlank(name)) {throw new IllegalArgumentException(...);}if (maxIdle maxTotal) {throw new IllegalArgumentException(...);}if (minIdle maxTotal || minIdle maxIdle) {throw new IllegalArgumentException(...);}return new ResourcePoolConfig(this);}public Builder setName(String name) {if (StringUtils.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;}} }//通过内部类builder来创建对象build的时候会校验属性并创建对象。 ResourcePoolConfig config new ResourcePoolConfig.Builder().setName(dbconnectionpool).setMaxTotal(16).setMaxIdle(10).setMinIdle(12).build(); // 这段代码会抛出IllegalArgumentException因为minIdlemaxIdle三. 小结 1. 结合场景使用 如果对象只是用来映射数据库读出来的数据那我们直接暴露 set() 方法来设置类的成员变量值是完全没问题的。并且使用建造者模式来构建对象代码实际上是有点重复的ResourcePoolConfig 类中的成员变量要在 Builder 类中重新再定义一遍。 所以选择建造者模式需要结合具体的实际场景来使用。 2. 与工厂模式的区别 工厂模式是用来创建不同但是相关类型的对象继承同一父类或者接口的一组子类由给定的参数来决定创建哪种类型的对象。建造者模式是用来创建一种类型的复杂对象通过设置不同的可选参数“定制化”地创建不同的对象。 参考 王争《设计模式之美》
http://www.zqtcl.cn/news/918657/

相关文章:

  • 学历教育网站建设网页前端是什么
  • 相同网站名网站县区分站点建设
  • 医疗器械网站建设方案南京网站制作系统
  • 小网站托管费用企查宝企业查询
  • 专门做特卖的网站是什么外国炫酷网站网址
  • 学习网站的建设wordpress批量拿shell
  • 中企动力做的网站推软件
  • 北京财优化沧州seo公司
  • 收到网站代码后怎么做啥是东莞网站优化推广
  • 重庆商城网站开发网站建设中英版
  • 免费企业网站开发给酒吧做网站
  • 想用自己电脑做服务器做个网站吗网站制作工作室哪家比较好
  • 这样建立网站vs2008做网站
  • 做网站创业故事好看大方的企业网站源码.net
  • 做家常菜哪个网站最好香蜜湖附近网站建设
  • 网站index.php被修改seo网络推广经理招聘
  • 南京做网站联系南京乐识网站建设培训福州
  • 比较冷门的视频网站做搬运网站建设 分析
  • 网站开发实习计划模板有做数学题的网站吗
  • 汕头 网站网页设计图片轮播切换
  • 免费ui网站美橙网站设计
  • 网站建设 海口哪里有网站设计公司
  • 广西建设监理协会官方网站网站建设的需求文档
  • 网站后台怎么做飘窗wordpress add_theme_page
  • 网站建设哪家信誉好网店美工具体要求
  • 网站管理建设工作wordpress 媒体库 直链
  • 网站备案是域名备案还是空间备案wordpress注册数学验证
  • 网站的种类有哪些怎么做代理人金沙网站
  • 西城顺德网站建设网站开发网上教学
  • 公司网站成本百度制作公司网页